有关函数式编程的无障碍书籍[关闭]


17

我正在寻找一本以易用的方式介绍函数式编程的书。另外,我更喜欢一种不太沉闷并且不使用深奥语言的语言。

理想情况下,它将使用示例来演示函数式编程比命令式方法导致更优雅或更简单的解决方案的情况。

我有相当数量的编程经验,但没有函数式编程知识。谢谢你的建议


3
我很好奇,当您说不想使用“深奥的语言”时,是否想到了一种特定的语言。
MatrixFrog 2011年

@MatrixFrog:我对“深奥的语言”有99%的把握,他的意思是Scheme。他可能知道SICP是推荐的第一本书。
user16764 2011年

@ user16764但是“可访问”?那将是基于作者在《计算机科学课程的结构和解释》中给出的基本原理的“ 如何设计程序(或第二版)” 。
Mark C

Answers:



10

如果您喜欢静态类型语言和[括号]:

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中的“ 在48小时编写自己的计划”来分开两者并同时学习两种方法。


如果您选择SICP,那么本书上还会有很多视频讲座,其中最著名的是:groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures保罗·格雷厄姆(Paul Graham)是一位出色的作家,并且有一本关于为什么lisp是蜜蜂的膝盖paulgraham.com/onlisptext.html
simoraman 2011年

1
我正在阅读Real World Haskell的免费在线版本,在阅读文本的同时阅读评论的功能非常有帮助。因此,即使您获得纸质版本,您也可能想阅读在线版本。某些部分只是减少了与注释的混淆。
MatrixFrog 2011年

4

我最喜欢的资料是《Haskell简介》。我读了《了解您的Haskell》和《 O'Reilly 真实世界中的Haskell和Simon Thompson的函数式编程手法》的部分内容,但老实说,我的入门技巧很好。有点像Haskell的K&R:一种由语言创建者制作的薄文档。没有罗y,没有光顾,但也没有试图以他们的学识压倒你,也没有。


1
温柔的介绍”非常直接且毫不废话,就像对腹部的坚定拳打一样。从某种意义上说,它是温柔的,它在没有恶意的情况下进行暴力,既不求索也不占主导地位。而是希望读者可以发现反击所必需的内在力量。
CA McCann

1
嗯,老师,不确定我会使用那个图像,但是不管用什么。这不是暴力,也不是内在的力量,但是我会同意的。“温柔”在这里有点幽默。像“谦虚的建议”。
JohnL4 2011年

1
是的,我当时在这里……有轻微的创作自由。;]然而,与近几天的其他入门资料相比,要直截了当,要花些直率的东西(对于任何一种语言,而不仅仅是Haskell),确实需要一点精神上的毅力。与K&R的比较让我觉得您已经习惯了这种风格。我通常认为,“温和”的意思与从Haskell报告和大量研究论文中学习相反。
加利福尼亚州麦肯

1

http://hop.perl.plover.com/包含一本您可以免费下载的书。它说明了如何在Perl中使用许多功能技术。

它所说的大部分内容都可以很容易地翻译成JavaScript,Ruby或Python。


1

我目前正在自己​​学习函数式编程。但是我正在学习使用Haskell。

这是一些在线书籍(您也可以在精装iirc中购买这些书籍)

Haskell不是酯基的,正变得更加主流(可能不像LISP或Erlang那样主流)。但是,它是一种纯函数式语言,将迫使您学习函数式编程范例。与使用非纯函数式语言的半命令式半函数式方法相反。

人们已经使用haskell开发了WebServer,Bittorrent Client和一些实际应用程序。但是,我个人使用它来学习概念,然后将其应用于C#和F#,到目前为止效果非常好。

请享用。


1

我多次听到有关“计算机程序的结构和解释”的好消息。这是一本真正的书,因此您可能也想在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/


SICP很好,但根据我的经验无法访问。
威廉·

1

在Haskell编程

您可能没有决定购买它,但是这本书的首页(请参见上文)链接到了有关Haskell编程的13个频道的9个频道的视频。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.