作为我的第一门编程语言,我决定学习 Haskell。我的专业是分析哲学,哈斯克尔允许我快速、正确地创建感兴趣的程序,例如,自然语言解析的传感器、定理证明程序和解释程序。虽然我只编写了两个半月的程序,但是我发现 Haskell 的语义和语法比传统的命令式语言更容易学习,而且现在对它的大多数结构都感觉很舒服。
然而,在哈斯克尔编程就像巫术一样,我想扩展我的编程知识。我想选择一种新的编程语言来学习,但是我没有足够的时间去学习一种任意的语言,放弃它,然后重复。因此,我想在这里提出这个问题,同时对我所寻找的语言类型做出一些规定。有些是主观的,有些是为了缓解从哈斯克尔的过渡。
权衡答案 : 当然,这些只是笔记。我只想回答每一个给出正确答案的人。你帮了大忙。
1)一些回复表明,强调递归的强大的静态类型语言意味着另一种函数式语言。虽然我想继续与 Haskell 紧密合作,camccann 和 larsmans 正确地指出,另一种这样的语言将“过于简化转换”这些评论非常有帮助,因为我不想在 Caml 给 Haskell 写信!在证明助理中,考克和阿格达看起来都很有趣。特别是,Coq 将为构造逻辑和形式类型理论提供一个扎实的介绍。我在一阶谓词和模态逻辑(Mendellsohn,Enderton,还有一些 Hinman)方面花了一些时间,所以我可能会从 Coq 中获得很多乐趣。
2)其他人非常喜欢 Lisp (Common Lisp,Scheme 和 Clojure)。据我所知,Common Lisp 和 Scheme 都有优秀的入门材料(在 Lisp 上和 理性的策划者,SICP)。SICP中的材料使我倾向于 Scheme。特别是,Scheme 到 SICP将涵盖不同的评估策略、惰性的实现,以及关注延续、解释器、符号计算等主题的机会。最后,正如其他人指出的那样,Lisp 对待代码/数据的方式将是全新的。因此,我倾向于选项(2) ,一个 Lisp。
3)第三,Prolog。Prolog 有大量有趣的材料,它的 初选域正是我感兴趣的。它有一个简单的语法和易于阅读。我现在不能给出更多的评论,但是在读了 Prolog 的概述和略读了一些介绍性的材料之后,它的排名是(2)。似乎 Prolog 的回溯程序总是被黑进 Haskell!
4)在主流语言中,Python 看起来最有趣。Tim Yates 让这些语言听起来很有吸引力。显然,Python 经常被教给计算机科学专业的一年级学生; 所以它要么概念丰富,要么容易学。我得做更多的研究。
谢谢大家的推荐!它看起来像 Lisp (Scheme,Clojure)、 Prolog,或者像 Coq 或 Agda 这样的证明助手是被推荐的主要语言。