Lisp如何让我成为更好的C#开发人员?

时间:2009-12-08 20:54:48

标签: c# lisp scheme

我正在考虑学习一种Lisp方言(可能是Scheme,因为我经常听到它的学习语言有多好),以提高我的一般编程技巧。

除了学习任何新语言可以帮助你成为更好的程序员之外,学习Lisp如何让我成为更好的C#程序员?

7 个答案:

答案 0 :(得分:11)

John Hughes为什么功能编程很重要 http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html

保罗·格雷厄姆击败平均值
http://www.paulgraham.com/avg.html

答案 1 :(得分:9)

我认为从学习函数式语言中获得的最好成果就是开始以更具声明性,更少命令性的方式思考。这将导致编写更易读,可维护和可组合的代码。

当你开始运作时,你学到的另一件事是纯函数的重要性,即没有副作用的函数。

由于C#已经越来越多地使用了闭包(又名lambdas)和LINQ这样的功能和声明性功能,你可以更好地理解这些结构的编程。我很容易理解延迟执行,这是最常见的LINQ陷阱,因为我已经使用了一种懒惰的函数式语言Haskell。

答案 2 :(得分:4)

几年前乔尔写了一篇文章about programmers knowing anything but Java ,为什么学习像Scheme这样的东西是个好主意。我认为这些论点也适用于C#。另一个很好的理由是有一本非常好的关于编程的书'Structure and interpreation of computer programs' by Abelson and Sussman,它使用了Scheme,可以为你提供很多关于不同编程概念的新见解。

答案 3 :(得分:4)

你应该学习Lisp,这样你才能理解metaprogramming的力量。如果您尚未这样做,则应学会使用Emacs并尝试编写一些Emacs Lisp。之后,尝试使用Common Lisp继续编程SLIME

答案 4 :(得分:2)

首先,你可以从里到外学习递归。

答案 5 :(得分:1)

学习Scheme的一个很好的理由是它经常被用作教学语言。因此,有很多好的(学术性)书籍和论文可以用Scheme作为目标语言。

谷歌:

  • EOPL
  • SICP
  • HTDP
  • Little / Seasoned / Reasoned Schemer

答案 6 :(得分:1)

只是学习它并回来惊讶并告诉我们。