Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"Can Programming Be Liberated From the von Neumann Style?"

John Backus's Turing Award Lecture http://www.cs.tufts.edu/~nr/backus-lecture.html

(This is the origin of FP.)

edit: One of the things that is central to FP is the idea of being able to do algebra to your programs.



Not really. McCarthy's lisp paper was 1959, 18 years before Backus' lecture. Also ML appeared in '73. https://en.wikipedia.org/wiki/ML_(programming_language)


Eh, er, em, I kinda want to concede the point, but no.

I'm trying to draw attention to the algebra of programs. The subtitle of Backus' paper is "A Functional Style and its Algebra of Programs". I just skimmed the wikipedia article on Functional programming and it's not really mentioned at all that I saw.

Everyone seems to leave it out, but it's arguably the most important part of FP.

You can do wonderful things in Joy (Manfred von Thun's language) which is very close to Backus' FP system. This algebraic stuff is possible in most languages that are considered Functional, but it's much easier in a language designed for it.


I was just pointing out that it wasn't "the origin of FP" as you stated.


My whole point is that defining FP as "programming with functions" or "programming with immutable data" or whatever is incomplete without the idea of being able to do algebra to derive programs.

Now, you can kinda do algebra with LISP and ML but they do not lend themselves to the algebraic approach with quite the ease of (Backus') FP or (Von Thun's) Joy. Backus introduced the terminology and the "higher-order" functions in that paper. I don't think people were talking about "functional programming" prior to that. To me, with my admittedly limited understanding and knowledge, it feels a little "revisionist" to go back and retro-actively anoint LISP as the origin of FP.

(LISP and ML have their own greatness, they don't need to steal John Backus' glory.)

If FP style becomes popular but everyone omits the algebra then it's not going to fulfill its potential.


A higher order function is a function that takes one or more functions as arguments, or returns functions, or does both.

The 1960 Lisp manual already describes a LAMBDA operator and functions that take functions, such as APPLY.

This papering about FP by Backus seems to have occurred in the mid to late 1970's.

"Higher order function" is a name given to something that some programmers had already been taking for granted.

(And I don't think Backus was trying to take credit for inventing anything. Of course he knew all that.)


Read the paper.

The algebra of programs is the thing that Backus' FP emphasizes that's new from the context of LISP, et. al..

Let me try another tack: Why do you suppose Backus didn't write the paper in terms of LISP or ML? He knew all that, as you say, and this was his Turing Award lecture. Are we all really going to try to maintain that John Backus didn't have something new and interesting to talk about on this occasion?




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

Search: