阅读精心编写的代码似乎可以帮助我学习一门语言.(至少它与C合作.)[删除问题的"过度指定"部分]
我特别感兴趣的是lisp作为一种适合创建特定于问题的迷你语言或DSL的语言的声誉.当然,该程序应该是开源的,并且最好通过网络获得.
我用Google搜索并找到了这个例子:
http://lispm.dyndns.org/news?ID=NEWS-2005-07-08-1
有人有另一个吗?(是的,我会继续阅读"Practical Common Lisp".)
11个小时后(仅11个小时!):谢谢大家.多么棒的网站,以及一堆好的答案和提示!
我觉得你的约束是过度指定的:
小到足以理解,变化到足以炫耀大部分(c)lisp的技巧和特征而不是不透明("写得好"的部分愿望),并独立于其他包.
Common Lisp是一种庞大的语言,当你组合语言元素时出现的权力集要大得多.你不能拥有一个在CL中显示"大多数技巧"的小程序.
当你学习来自另一种语言的CL时,你会发现很多概念.因此,CL不仅仅是技巧,而是更多关于其基本范式.
我的建议是首先阅读它,然后开始构建自己的程序或查看开源代码.
例如Edi Weitz通常会编写好的代码.在http://www.weitz.de/上查看他的项目.
现在去阅读PCL.:)
如果您还没有看过它,可以在线免费获得Practical Common Lisp这本书,并有几个示例项目.
我有点懒,找不到链接,但你应该可以'谷歌'/'冰吧'.以下列表提到了嵌入语言和非常不同的嵌入式语言的不同方法.
ITERATE迭代
'defsystem'中的系统/模块/文件描述,一个例子是ASDF
中缀readmacro
CLIM中的define-application-frame用于指定用户界面
在LispWorks和CLSQL中嵌入了Lispified SQL查询
LispWorks的知识工作:逻辑语言与规则,查询,...
嵌入式Prolog在Allegro CL中
以各种形式嵌入HTML
XMLisp,集成了XML和Lisp
用于非确定性编程的尖叫声
PWGL,用于创作音乐的可视化编程
请注意,有简单的嵌入式语言和非常复杂的嵌入式语言提供全新的范例,如Prolog,Screamer,CORBA,......