我有一个混合的C ++和Ruby背景。是否有任何函数式编程语言与其中任何一个都有相似之处?我正在努力学习一门函数式编程语言,一些语法或任何其他形式的熟悉无疑会有所帮助。
答案 0 :(得分:3)
如果你打算学习函数式编程,以便根据需要学习其他函数式语言,那么专注于一本关于有意义的函数式语言的书,并尝试选择一种语言并找到教授该语言的学习材料。一旦你掌握了一种功能语言,剩下的就变得越来越容易了。我开始使用F#,但是在不到一年的时间里,我一路上选择了OCaml,LISP和现在的ML。我还没有到达Haskell,但总有一天应该。
我建议你从选择一些学习材料开始的原因是互联网上有很多好的免费书籍。我倾向于从他们教授的大学的教师帐户中找到它们作为PDF文件。此外,大多数语言都是免费的,但IDE的强大功能非常强大,从语法高亮到Eclipse和Visual Studio。
由于您需要考虑不同的概念,所以不要随身携带有关命令式或面向对象编程的知识。重新开始,这将更容易。
还有一些advise。
作为相同概念的示例,但语言语法不同,请参阅fold,map,filter和List comprehension。
另外,为了帮助您查看多种语言的完整示例(任务),请参阅tree traversal,其中包含功能语言列表here以及所有任务列表here。
正如您所看到的,语法差别很大。我发现在初始版本之后添加功能的语言,无论是通过扩展语言,添加库还是使用模板,都是最难理解的。