Jump to ratings and reviews
Rate this book

Functional C

Rate this book
Functional C teaches how to program in C, assuming that the student has already learnt how to formulate algorithms in a functional style. By using this as a starting point, the student will become a better C programmer, capable of writing programs that are easier to comprehend, maintain and that avoid common errors and pitfalls. All program code that appears in Functional C is available on our ftp server - see below. How to find a code fragment?
To access a particular code fragment, use the book to locate the section or subsection in which the code fragment appears, then click on that section in the code index . This will open the appropriate page at the beginning of the section. The code fragment may then be selected using the copy/paste facilities of your browser. Each chapter is represented by a separate page, so as an alternative to the procedure above you can use the save-as menu of your browser to up-load all code fragments in a particular chapter at once. Also available on our ftp server is errata for Functional C.

456 pages, Paperback

First published April 1, 1997

18 people want to read

About the author

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
2 (50%)
4 stars
1 (25%)
3 stars
1 (25%)
2 stars
0 (0%)
1 star
0 (0%)
Displaying 1 of 1 review
34 reviews3 followers
December 7, 2014
This book provided the world with, in my opinion, the single greatest definition of what function programming is and how it differs from imperative programming, which I quote here:

The functional and imperative paradigms operate from different viewpoints. The functional paradigm is based on the evaluation of expressions and binding variables to values. The basic program phrase is the expression, the purpose of evaluating an expression is to produce a value. The order in which subexpressions are evaluated does not affect the resulting value.

The imperative paradigm is based on the execution of statements and having a store where the statements can leave their results. The basic program phrase is the statement; the purpose of executing a statement is to change the store. The order in which statements are executed does affect the resulting values in the store. The current set of values in the store is referred to as the state of the program.


I have not seen a definition of functional or imperative programming that does a better job of capturing the essence of the differences than this, and this gives some concrete clues about why people say things like "Ruby is more functional than Python": even though both are fundamentally about modifying "the store," Ruby is at least courteous enough to have no expression/statement dichotomy, Python's use of None notwithstanding.

The rest of the book is very good, although I doubt the market is very large for people who know ML and wish to learn C. It's definitely an eye-opening book and it gives concrete explanations of things missing in C from an ML perspective (such as modules) and how to live without them.
Displaying 1 of 1 review

Can't find what you're looking for?

Get help and learn more about the design.