Hacker News new | past | comments | ask | show | jobs | submit login
Introduction to Functional Programming (1988) [pdf] (usi-pl.github.io)
174 points by noch on Feb 28, 2018 | hide | past | web | favorite | 12 comments

Coming to FP very late in my career, I've never read this. I've skimmed about half of it and it looks really nice. Unless I'm mistaken, it appears that the entire book provides examples in pseudo-code which is pretty interesting. I like their concept of specifications and the definition of strictness is really nice. I'm looking forward to getting a bit of time to read it more fully.

Worry not about "not having read <foo>" for FP litterature is surprisingly large (tempted to say immense). I've been finding more and more papers, journals, and books after years of digging.

Edited. There is Introduction to Functional Programming using Haskell by one of the authors if you'd rather have examples in a particular programming language.

At least some of the code in there appears to be Miranda code, which is a predecessor to Haskell.

This is the book that I came across in the early 90s in a second hand book shop that got me thinking about functional programming! I wouldn't recommend it now, as there are better resources, but I really liked this book, I still have it in my bookshelf

Do you mind linking any of those resources?

There are various free or relatively inexpensive lisp books out there (covering Common Lisp, Scheme, and Racket in particular). Some may debate whether lisps are functional. They're more pragmatic in some ways than the ML family, but do permit functional programming. Structure and Interpretation of Computer Programs, How to Design Programs, Paradigms of AI Programming as will as On Lisp and Practical Common Lisp are ones I can recommend (having worked through all or large portions of them). All those are free. Little Schemer and Seasoned Schemer aren't free but aren't expensive, the style isn't for everyone but I liked them.

If you want an ML, there are various free resources for Haskell. The update to the linked book is mentioned in another comment but is not free. The ML family offers a different perspective on FP, particularly by way of their type system. I worked through a chunk of Learn You a Haskell, but I'm not sure how current it is. A Haskeller could probably give more feedback.



Erlang via the link below. It's a bit different than the other two, but is definitely a functional programming language.


There have been courses on Coursera and similar sites in the past that may be worth visiting, I don't know what to recommend of the presently available ones.

It's probably worth noting here that according to the page this link is from, there's a newer 2015 edition available of this book.

Thinking Functionally with Haskell, Richard Bird, 2015 [0] states The first edition was titled 'Introduction to Functional Programming', and was co-authored with Phil Wadler. It was published in 1988. This is the one linked and free available. The second edition was titled Introduction to 'Functional Programming using Haskell', published in 1998. The 2015 edition is also available from safaribooksonline [1].

[0] https://www.cs.ox.ac.uk/publications/books/functional/

[1] https://www.safaribooksonline.com/library/view/thinking-func...

Its also excellent, one of the best FP books I've read, and I've read quite a few. It might be the best self-study programming book I've seen as well, all the answers are included at the end of exercises at the end of each chapter, it goes from fairly simple to a theorem prover by the end. Spectacular book. I look forward to seeing how this pdf compares.

Also worth noting is that some people (Erik Meijer for one) really prefer this first edition.

The Miranda book! I read this as a wet-behind-the-ears undergrad, and the scales fell from my eyes. Also, my copy had a weird binding that made a funny squeaking sound every time I turned a page.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact