Lisp 很早就在学术界开发了一组有趣的语言特性,但其中大部分从未在生产环境中流行起来。
一些语言,如 JavaScript,采用了垃圾收集和词法闭包等基本功能,但所有可能真正改变你大规模编写程序的方式的东西,如强大的宏、代码作为数据的东西和自定义控件结构,似乎只在其他函数式语言中传播,这些语言都不适用于重要的项目。
函数式编程社区还提出了许多其他有趣的想法(除了函数式编程本身),例如引用透明性、广义 case 表达式(即模式匹配,不像 C/C# 开关那样残缺不全)和柯里化(Currying)函数,这些函数在常规编程中显然很有用,应该很容易与现有的编程实践集成,但由于某种原因似乎永远停留在学术界。
为什么这些功能很难被采用?是否有任何现代、实用的语言真正从 Lisp 中学习而不是半吊子地复制“一流的功能”,或者是否存在使这不可能的内在冲突?
最佳答案
Are there any modern, practical languages that actually learn from Lisp instead of half-assedly copying "first class functions", or is there an inherent conflict that makes this impossible?
为什么 lisp、haskell、ocaml 或 f# 不是现代的?
您可能只需要自己承担并查看它们,然后意识到它们更健壮,使用像 java 这样的库,然后您会想。
函数式语言的很多特性被其他语言所采用。但反之亦然——例如,(某些)函数式语言有对象。
关于haskell - 哪些语言实现了函数式编程的特性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75303/