我正在寻找一本以易用的方式介绍函数式编程的书。另外,我更喜欢一种不太沉闷并且不使用深奥语言的语言。
理想情况下,它将使用示例来演示函数式编程比命令式方法导致更优雅或更简单的解决方案的情况。
我有相当数量的编程经验,但没有函数式编程知识。谢谢你的建议
我正在寻找一本以易用的方式介绍函数式编程的书。另外,我更喜欢一种不太沉闷并且不使用深奥语言的语言。
理想情况下,它将使用示例来演示函数式编程比命令式方法导致更优雅或更简单的解决方案的情况。
我有相当数量的编程经验,但没有函数式编程知识。谢谢你的建议
Answers:
我先从“ The Little Schemer ”(也许之后是“ The Reasoned Schemer ”)开始。
如果您认为Scheme太深奥了,或者您喜欢Javascript,则道格拉斯·克罗克福德(Douglas Crockford)已将许多练习翻译成Javascript:http : //javascript.crockford.com/little.html
如果您喜欢C#,Tomas Petricek撰写的“ Real-World Functional Programming ”将是一个不错的起点。它还可以很好地介绍F#。
如果您喜欢静态类型语言和[括号]:
Haskell虽然非常注重编程范式的纯正,但却以“向您学习Haskell来了!图书形式是可选的,因为该网站是免费的,但是我完全不觉得这是一个作者。真实世界的Haskell很好,但最好将其作为[Learn..Good]的后续措施。RWH也是免费的,具有可选的纸质效果。
从Haskell,您可以轻松地过渡到其他ML变体,例如F#或OCaml,这两种变体都被更广泛地使用。对于ATS的出血边缘。
如果愿意(和Dynamic_Typing括号):
Scheme在Lisp的两个主要方言中更具功能性,比Common Lisp更为小巧和纯正,但在工业中使用却不那么广泛。我个人喜欢《计算机程序的结构和解释》,但这是一本理论上很繁重的书,虽然有点难以理解,但是会让您成为一个更好的程序员。
如果您更喜欢Common Lisp,那么“ 实用Common Lisp”或“ Lip of Lisp”似乎都是不错的投资,第一个是免费在线,第二个是相当便宜的,并且(对于某些人)更重要的是专注于游戏。它比Scheme更强大,但不够纯净。
如果需要,您可以从这些扩展为Clojure。Lisp是针对JVM的Lisp,因此它更易于部署,并且能够更好地抵御“学术”的指控Clojure可以部署到.NET以及跨Java脚本。对于本机.NET,请尝试IronScheme。
我最喜欢的资料是《Haskell简介》。我读了《了解您的Haskell》和《 O'Reilly 真实世界中的Haskell和Simon Thompson的函数式编程手法》的部分内容,但老实说,我的入门技巧很好。有点像Haskell的K&R:一种由语言创建者制作的薄文档。没有罗y,没有光顾,但也没有试图以他们的学识压倒你,也没有。
http://hop.perl.plover.com/包含一本您可以免费下载的书。它说明了如何在Perl中使用许多功能技术。
它所说的大部分内容都可以很容易地翻译成JavaScript,Ruby或Python。
我目前正在自己学习函数式编程。但是我正在学习使用Haskell。
这是一些在线书籍(您也可以在精装iirc中购买这些书籍)
Haskell不是酯基的,正变得更加主流(可能不像LISP或Erlang那样主流)。但是,它是一种纯函数式语言,将迫使您学习函数式编程范例。与使用非纯函数式语言的半命令式半函数式方法相反。
人们已经使用haskell开发了WebServer,Bittorrent Client和一些实际应用程序。但是,我个人使用它来学习概念,然后将其应用于C#和F#,到目前为止效果非常好。
请享用。
我多次听到有关“计算机程序的结构和解释”的好消息。这是一本真正的书,因此您可能也想在Paper中获得它,请参阅http://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871。
它是免费的在这里http://mitpress.mit.edu/sicp/(http://mitpress.mit.edu/sicp/full-text/book/book.html),并有讲座的视频,即使(HTTP: //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/)
您可能没有决定购买它,但是这本书的首页(请参见上文)链接到了有关Haskell编程的13个频道的9个频道的视频。