函数式编程
ML程序设计教程
ML for the Working Programmer Douban
保罗森 translator: 柯韦 publishing house: 机械工业出版社 2005 - 5
本书是关于ML程序设计的经典教材,详细介绍如何使用 ML语言进行程序设计,并讲解函数式程序设计的基本原理。 书中含有大量例子,涵盖了排序、矩阵运算、多项式运算等方面。大型的例子包括一个一般性的自顶向下语法分析器、一个一演算归约程序和一个定理证明机。书中也讲述了关于数组、队列、优生队列等高效的函数式实现,并且有一章专门讨论函数式程序的形式论证。本书的代码均可以从作者网站(http://www.cl.cam.ac.uk/users/lcp/)得到。 本书详细讲解如何使用ML语言进行程序设计,并介绍函数式程序设计的基本原理。书中特别讲述了为ML的修订版所设计的新标准库的主要特性,并且给出大量例子,涵盖排序、矩阵运算、多项式运算等方面。大型的例子包括一个一般性的自顶向下语法分析器、一个l-演算归约程序和一个定理证明机。书中也讲述了关于数组、队列、优先队列等高效的函数式实现,并且有一章专门讨论函数式程序的形式论证。 本书可作为高等院校计算机专业相关课程的教材,也适合广大程序设计人员参考。
算法新解
Douban
刘新宇 publishing house: 人民邮电出版社 2016
本书分4 部分,同时用函数式和传统方法介绍主要的基本算法和数据结构。数据结构部分包括二叉树、红黑树、AVL 树、Trie、Patricia、后缀树、B 树、二叉堆、二项式堆、斐波那契堆、配对堆、队列、序列等;基本算法部分包括各种排序算法、序列搜索算法、字符串匹配算法(KMP 等)、深度优先与广度优先搜索算法、贪心算法以及动态规划。 本书适合软件开发人员、编程和算法爱好者,以及高校学生阅读参考。
Functional and Reactive Domain Modeling
Douban Goodreads
Debasish Ghosh publishing house: Manning Publications 2016 - 11
Perhaps the biggest challenge a developer faces is understanding the problems that a software system needs to solve. Domain modeling is a technique for creating a conceptual map of a problem space such as a business system or a scientific application, so that the developer can write the software more efficiently. The domain model doesn't present a solution to the problem, but instead describes the attributes, roles, and relationships of the entities involved, along with the constraints of the system.
The Little Schemer - 4th Edition
Douban Goodreads Skybridge
★ 9.7 6 ratings
Daniel P. Friedman / Matthias Felleisen publishing house: The MIT Press 1995 other title: The Little Schemer
This delightful book leads you through the basic elements of programming in Scheme (a Lisp dialect) via a series of dialogues with well-chosen questions and exercises. Besides teaching Scheme, The Little Schemer teaches the reader how to think about computation. The authors focus on ten essential concepts of thinking about how to compute and demonstrate how to apply these concepts in inventive ways. The Little Schemer is an excellent book both for the beginner and for the seasoned programmer.
Implementing Functional Languages
Douban
Simon L. Peyton Jones / David R. Lester publishing house: Prentice Hall 1992 - 8
This book provides a practical approach to understanding implementations of non-strict functional languages using lazy graph reduction. It is intended to be a source of practical laboratory work material and to help students to develop, modify and experiment with their own implementations. The emphasis lies on the building of working prototypes of several functional language implementations and in each case the approach is to give a complete working prototype of a particular implementation, then lead the reader through a sequence of improvements to expand its scope. The prototypes are expressed in the functional language Miranda and software is available in machine-readable form.
The Implementation of Functional Programming Languages
Douban
Simon L. Peyton Jones publishing house: Prentice Hall 1987 - 5
This book is about implementations, not languages, it will make no attempt to extol the virtues of functional languages or the functional programming style. Instead this book will assume that the reader is familiar with functional programming; those without this familiarity may find it heavy going. The first part describes how to translate a high-level functional language into an intermediate language, called the lambda calculus, including detailed coverage of pattern-matching and type-checking. The second part begins with a simple implementation of the lambda calculus, based on graph reduction, and then develops a number of refinements and alternatives, such as supercombinators, full laziness and SK combinators. Finally, the third part describes the G-machine, a sophisticated implementation of graph reduction, which provides a dramatic increase in performance over the implementations described earlier.
Purely Functional Data Structures
Purely Functional Data Structures Douban Goodreads Skybridge
Chris Okasaki publishing house: Cambridge University Press 1999 - 6
Most books on data structures assume an imperative language such as C or C++. However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functional data structures. The author includes both classical data structures, such as red-black trees and binomial queues, and a host of new data structures developed exclusively for functional languages. All source code is given in Standard ML and Haskell, and most of the programs are easily adaptable to other functional languages. This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study.