Why even name-drop academics though? Shouldn't you be dismissing them as irrelevant and praising Gates, Jobs and Gosford instead? You know, real INDUSTRY figures?
> find an example of FP--you can't.
Programming with functions... programming with functions... programming with functions. Sure.
> Dijkstra
Here is Dijkstra protesting the replacement of Haskell with Java https://www.cs.utexas.edu/users/EWD/transcriptions/OtherDocs...
> Turing
Turing and Church were contemporaries. The Turing Machine was a landmark achievement useful for reasoning about the limits of computation, but where is it today? Have you tried building anything out of a Turing machine (assuming you had infinite tape)? It's basically Brainfuck. Church's Lambda Calculus predates it and is still useful.
John Backus, who can hardly be considered lesser than any of the others on this cherry-picked list, used his Turing Award lecture to rally for functional programming:
http://www.thocp.net/biographies/papers/backus_turingaward_l...
A. Pure functions + immutable data structures.
B. Expressive type systems, all the way to compile-time metaprogramming and dependently typed proofs.
Writing programs in style A. is tremendously valuable. Expending too much effort in the fine points of the type system, which invariably is simultaneously both under-expressive and over-expressive, is a complete waste of time. Some critical projects require high defect-free confidence, and for those it's legitimate to go full in formal proofs and take the 10x-100x productivity slowdown. For mere mortals, documenting the structure of the data (json) manipulated by the respective functions suffices.
But this is a stupid thing to argue about and not relevant to this thread.
That is very debatable.
Lambda calculus is a BFD in the subfield of programming languages, which is the topic at hand.
This is a good example of abusing the vocabulary of mathematics as is common in the FP world. A programming language is not an object in abstract algebra. You can't add, subtract, or factorize a programming language. It's just software.
https://en.wikipedia.org/wiki/Atomic_domain#Special_cases
This is a pretty hilarious misinterpretation
> "Lambda calculus is a bounded factorization domain in the subfield of programming languages. What's the problem?"