我正在考虑学习一种Lisp方言(可能是Scheme,因为我经常听到它的学习语言有多好),以提高我的一般编程技巧。
除了学习任何新语言可以帮助你成为更好的程序员之外,学习Lisp如何让我成为更好的C#程序员?
答案 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)
答案 3 :(得分:4)
你应该学习Lisp,这样你才能理解metaprogramming的力量。如果您尚未这样做,则应学会使用Emacs并尝试编写一些Emacs Lisp。之后,尝试使用Common Lisp继续编程SLIME。
答案 4 :(得分:2)
首先,你可以从里到外学习递归。
答案 5 :(得分:1)
学习Scheme的一个很好的理由是它经常被用作教学语言。因此,有很多好的(学术性)书籍和论文可以用Scheme作为目标语言。
谷歌:
答案 6 :(得分:1)
只是学习它并回来惊讶并告诉我们。