txx*_*xwq 19 functional-programming
我想学习一种函数式编程语言来查看不同的编程范例.
我的编程背景:Java(我刚刚通过了SCJP考试),一些ruby和非常有限的Rails.我使用bash进行基本的sysadmin任务.我使用的是Ubuntu 9.04.
作为第二个目标,我想用fp向孩子(14-18岁)展示数学和cs是如何相互关联的.这些人非常擅长编程(他们从第一年开始在politechnical高中学习Python和Java).然而,正如测试所示,他们在数学方面存在困难.离散数学的基本概念.我认为我们可以通过编程来发展他们的数学技能(我可能这可能是我的教师培训论文的主题).我认为一种具有非常基本词汇的语言最适合这个项目.
JSB*_*ոգչ 17
我投票支持Haskell,它具有以下优点:
Nor*_*sey 10
如果您的主要目标是与青少年合作,那么使用功能语言教学法和技术已被证明与青少年合作是有意义的,那就是PLT Scheme(又名DrScheme)和如何设计程序书(也在线免费) ).这些家伙从中学到第三学期大学都取得了很好的成绩.他们也为教师提供资源.
许多受访者喜欢SICP.这是一本很棒的书 - 但不是要 学习.如果您已经了解Scheme,那么它是一本值得欣赏的书,但是SICP不是关于函数式编程,而是更多关于如何在Scheme中实现所有已知的有趣的计算机科学思想.
如果你的主要目标是学习一个真正新的编程范例,那么Scheme缺少一些对许多函数式程序员非常重要的特性:
如果你想要激动人心的想法,试试Haskell ; Haskell使你用新语言编写旧思想变得更加困难.相反,Haskell迫使你思考新想法.除了许多其他资源,Real World Haskell也是免费在线的.
最后说明:SO 在学习函数式编程方面有许多类似的问题.
我试试Scala.它不是纯粹的功能,它允许您使用各种方法 - 但是您的大部分Java知识都应该移植(基于JVM),包括JDK库,它是我见过的最先进的语言之一.
如果您对学习语言功能和扩展您的语言工作知识感兴趣,我无法想象一个更好的选择.