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

Eri*_*bes 12 c# lisp scheme

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

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

Rob*_*vey 11

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

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


R. *_*des 9

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

你去功能时学到的另一件事是纯函数的重要性,即没有副作用的函数.

而且因为C#已经获得越来越多的功能和声明性功能,如闭包(aka lambdas)和LINQ,你可以更好地理解这些结构的编程.我很难理解延迟执行,这是最常见的LINQ陷阱,因为我已经研究过Haskell,一种懒惰评估的函数式语言.

  • 我正在写自己的答案,但它基本上是"马丁霍所说的".以声明方式编写,功能写作--Lisp将为您提供外部视角,说明为什么这些是好事.不仅"函数编程样式更容易测试",而且"哇,看看我的程序有多短和多可扩展,因为它是数据驱动的,或者因为关键逻辑可以作为参数传入".正如你所说,C#已经获得了一些功能,这使得以这种方式工作变得更容易.Lisp可能会告诉你为什么要关心. (3认同)