Categorygithub.com/duan-map-lisp/dl
modulepackage
1.0.0
Repository: https://github.com/duan-map-lisp/dl.git
Documentation: pkg.go.dev

# README

duan_map_lisp

lisp是list模型,也就是S表达式列表式模型,忽然突发奇想到如果是用Map模型替代lisp的list模型,仿lisp是不是能创造出一个更好的语言?于是,有了这个项目。

暂时先写个编译器,编译器感觉没写好,代码暂时没放出来,命名为dl语言。 又多了一种lisp方言→_→

入门教程: 因为底层使用GO语言写的,数据类型机制等等是仿照Go语言的模型,强类型语言,自动类型推导。感觉弱类型脑子容易乱,毕竟是个编译语言,弱类型编译效率会比较低。很多模型包啥的,参考go语言就好,教程也很多,总体代码量不大,直接读代码也能看明白。 因为想遵循数据即代码的原则,语法模型完全就是json,可以直接json解析的,嗯,语法解释器都不用写了→_→ 语法模型几乎完全是遵照(抄的)麦卡锡的lisp语言,熟悉lisp的同学入门会比较低。

lisp语言一致性极高,完全使用list的S表达式模型。但是在操作类似object的时候,效果就极差。 尤其熟悉JavaScript的朋友清楚,在JavaScript里,function,class,object,map可以是同一个概念。 class的属性,方法,类型,其本质就是map的key,value模型。object和class只是类型相关的区别。function在js中可以当做object使用。 这样的的设计足以体现map概念的强大,我设计这门语言最大的初衷,就是融合lisp的S表达式模型和js的万物皆map。

该语言并非纯函数式编程,允许副作用存在,允许变量修改,强类型语言,支持数据类型自动推导(其实是go支持),支持函数式编程,强大的完整宏,特色的正则展开宏语法机制。 因为可解释可编译(编译器代码暂时未放出,感觉代码没写好,我想用go/build重写一下),还是强类型编译器好控制。 参数不会自动声明,使用前必须先声明再使用。自动声明虽然方便,但是我玩嵌入式的,我有代码洁癖。我很讨厌莫名其妙多出来一堆垃圾。 通过go语言的plugin机制,可扩展加载第三方库依赖,go语言能加载的依赖通过中间件机制我都能加载。 代码与数据之间可相互转换,也就跟lisp一样,写的代码可以写代码,写的代码可以写自己,可根据数据传入不同代码可自我进化。

PS: 疫情影响,最近的长假比较多,闲来无事我结合lisp语言,go语言,js语言和json数据格式,自创了一套编程语言,欢迎大家拍砖,亲们点个星再走哈~~~ 毕竟刚出炉,新鲜的。教程基本没有,标准库还不全。按照lisp家族的尿性,核心语法模型应该基本不再会变了,有bug另说。 标准库正在写的路上,没什么标准库整体来说,还不好用。 异常管理机制还没写,代码执行状态现在(基本)就两种,要么成功,要么崩溃。暂不支持执行状态判断,嘛~有空了加上~ 老话讲,程序猿学习各种编程语言,编写各种代码的过程,就是重新开发lisp的过程。我这也算是冲着最终目标来了吧~ github地址

PS: 请注意AGPLv3版权协议,违规必究→_→ 有想加入开发teem的发邮件哈。 [email protected]

入门教程

Makefile命令:

make all 编译项目,得到解释器。 make generate 编译预处理,生成代码。 make build 在预处理处理过的情况下,编译项目。 make test 暂时是个作废的功能,预留测试命令。 make examples 执行examples文件夹里的所有测试样例。 make clean 删除编译的二进制结果 make dist_clean 删除编译的二进制结果,删除预处理生成的中间文件,删除清空lib目录的第三方插件。

# Packages

No description provided by the author

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Variables

No description provided by the author
No description provided by the author

# Structs

No description provided by the author