« 陈方毅 | 首页 | Wildon »
在 为什么Lisp语言如此先进?(译文) 留言:
引用abc的发言: common lisp也有type inference的库,呵呵,估计也是很早的事情了吧。
引用abc的发言:
2010-10-15 21:03:06
引用hesen的发言: 作者明明是非常重要的提到了lisp的终极武器:宏MACRO。上面竟然没有一个提到此的。 你们真是个假lisp粉丝!!!
引用hesen的发言:
2010-10-15 17:39:20
我坚信对Lisp的卖点鼓吹现在也仅仅在语法变换上是合理的;至于那些函数式语言的特性,很遗憾,这个领域目前几乎就属于Haskell和ML家族。 另一方面也很容易看到,Lisp家族中最流行的Common Lisp方言写的代码越来越倾向于鼓励命令式而非函数式的编程风格。 曾经我也很沉醉于动态类型检查赋予的高度灵活性,但是静态类型检查+类型推理显然给了我们两个世界最好的东西,尽管些许方面有些妥协。 如果语法变换对你很重要,在Perl 6正式发布之前恐怕你不会有太多选择;如果你更在乎自信、可靠地构建程序,希望在编译期间就排除绝大多数的类型错误,如果不是全部的话,而缓解你debug的痛苦,显然ML家族、Haskell、Scala会是更好的选择。
2010-10-14 20:28:51
留言(3 条)
在 为什么Lisp语言如此先进?(译文) 留言:
但CL始终是动态类型的,可能依靠类型推理把它实现为完全静态类型化的语言吗?
我的直觉是:不可能。联想到人们乐呵呵地把命令式特性赋予ML时,忽然发现它产生的多态引用竟然能让一个静态类型化的语言产生运行时类型错误,不得不引入类型约束(type constraints);Lisp除了命令式特性,还有macro这个大玩意儿呢,它会合类型推理的静态类型如何交互呢?
当然,这还得仰仗学术派的牛们来证或否该直觉;我们仅仅是,哪边凉快哪边呆着的观察者而已。
2010-10-15 21:03:06
在 为什么Lisp语言如此先进?(译文) 留言:
你真不好好看帖,我明明提到了“语法变换(syntax transformation)”,这个术语在Lisp论域内就是指macro,实际上R. Kent Dybvig的The Scheme
Programming Language和Nils M Holm的Sketchy LISP: An Introduction to Functional Programming in Scheme里也是这么指称的。
2010-10-15 17:39:20
在 为什么Lisp语言如此先进?(译文) 留言:
我坚信对Lisp的卖点鼓吹现在也仅仅在语法变换上是合理的;至于那些函数式语言的特性,很遗憾,这个领域目前几乎就属于Haskell和ML家族。
另一方面也很容易看到,Lisp家族中最流行的Common Lisp方言写的代码越来越倾向于鼓励命令式而非函数式的编程风格。
曾经我也很沉醉于动态类型检查赋予的高度灵活性,但是静态类型检查+类型推理显然给了我们两个世界最好的东西,尽管些许方面有些妥协。
如果语法变换对你很重要,在Perl 6正式发布之前恐怕你不会有太多选择;如果你更在乎自信、可靠地构建程序,希望在编译期间就排除绝大多数的类型错误,如果不是全部的话,而缓解你debug的痛苦,显然ML家族、Haskell、Scala会是更好的选择。
2010-10-14 20:28:51