我应该选择哪种功能性编程语言作为第一功能性编程语言? [英] Which functional programming language should I choose as first functional programming language?

查看:128
本文介绍了我应该选择哪种功能性编程语言作为第一功能性编程语言?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我在编程方面的背景:Java(我刚刚通过了SCJP考试),我在学习编程语言一些红宝石和非常有限的Rails。我使用bash进行基本的系统管理员任务。我使用Ubuntu 9.04。



作为第二个目标,我想用fp向孩子们展示(14-18岁)数学和cs如何相互关联。这些人非常擅长编程(他们从第一年起就在高中技术高中学习Python和Java)。然而,正如测试所表明的那样,他们在数学方面有困难。离散数学的基本概念。我认为我们可以通过使用编程来发展他们的数学技能(我可能这是我的教师培训论文的主题)。如果你的主要目标是与青少年一起工作,那么它就是一个非常基本的词汇语言,它可以为这个项目提供最好的服务。 使用功能语言教学法和已被证明可与青少年一起工作的技术是有道理的,那就是 PLT Scheme (又名DrScheme)和如何设计程序一书(也可以在线免费)。这些人从中学到第三学期的大学取得了很好的成绩。他们也有教师资源



许多受访者喜欢SICP。这是一本很棒的书 - 而不是
学习。如果你已经知道Scheme,这本书是一本 admire 的好书,但是SICP不太关于函数式编程,更多的是关于如何在Scheme中实现所有已知的有趣的计算机科学思想。


如果您的主要目标是学习一种真正新的编程模式,那么Scheme缺少一些对许多功能程序员非常重要的功能:


  • 使用模式匹配编程

  • 部分应用curried函数
  • 多态静态类型系统

  • 纯函数计算



如果您想要令人兴奋的想法,请尝试 Haskell ; Haskell使你用新语言编程你的旧想法变得困难很多。相反,Haskell迫使你思考新的想法。除了许多其他资源外,真实世界Haskell 在线免费。



最后说明:SO在学习函数式编程方面有很多类似的问题


I would like to learn a functional programming language to see a different programming paradigm.

My background in programming: Java (I have just passed the SCJP exam), some ruby and very limited Rails. I use bash for basic sysadmin tasks. I use Ubuntu 9.04.

As a second goal I would like to use fp to show kids (14-18 years olds) how math and cs interrelated. The guys are very good at programing (they are learning Python and Java at politechnical high school from the first year). However as tests show, they have difficulties with math esp. basic concepts of discrete math. I think we can develop their math skills by using programming (and I possibly that can be the topic of my teacher training thesis). I think a language with very basic vocabulary would serve this project best.

解决方案

If your primary goal is to work with teens, it makes sense to use the functional-language pedagogy and technology that is proven to work with teens, and that is PLT Scheme (aka DrScheme) with the How To Design Programs book (also free online). These guys have got great results from middle school through 3rd semester university. They have resources for teachers as well.

Many respondents like SICP. It is a wonderful book—but not to learn from. If you already know Scheme, it is a good book to admire, but SICP is less about functional programming and more about how to implement all known interesting computer-science ideas in Scheme.

If your primary goal is to learn a really new programming paradigm, then Scheme lacks some features that are very important to many functional programmers:

  • Programming with pattern matching
  • Partial application of curried functions
  • A polymorphic static type system
  • Pure functional computation

If you want exciting ideas, try Haskell; Haskell makes it a lot harder for you to program your old thoughts in the new language. Instead, Haskell forces you to think new thoughts. In addition to many other resources, Real World Haskell is free online.

Final note: SO has had many similar questions on learning functional programming.

这篇关于我应该选择哪种功能性编程语言作为第一功能性编程语言?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆