Functional programming
Resources:
>Erlang
http://learnyousomeerlang.com/content
>>Elixir
http://chimera.labs.oreilly.com/books/1234000001642/index.html
http://elixir-lang.org/learning.html
>F#
http://fsharp.org/learn
>Haskell
https://en.wikibooks.org/wiki/Haskell
https://0x0.st/pbp.pdf
>Lisps
>>Common Lisp
http://gigamonkeys.com/book
http://www.cs.cmu.edu/~dst/LispBook/book.pdf
Paul Graham's ANSI Common Lisp
On Lisp
Common Lisp Recipes
Land of Lisp
>>Clojure
http://www.braveclojure.com/foreword/
The joy of Clojure
>>Scheme
Little Schemer
The Seasoned Schemer
The Scheme Programming Language by Kent Dybvig
Realm of Racket
Lisp in Small Pieces
>OCaml
https://realworldocaml.org/
http://ocaml.org/learn/tutorials/
>Scala
Functional Programming in Scala (Chiusano and Bjarnason)
Atomic Scala (Eckel and Marsh)
Programming Scala (Wampler and Payne)
Programming in Scala (Odersky, Spoon and Venners)
>Web languages
>>Elm
https://guide.elm-lang.org/
>>PureScript
http://www.purescript.org/learn/
>Theory
SICP
Essentials of Programming Languages
Practical Foundations for Programming Languages: http://www.cs.cmu.edu/~rwh/pfpl.html
How to Design Programs: http://www.ccs.neu.edu/home/matthias/HtDP2e/
Art of the Propagator
An Introduction to Functional Programming Through Lambda Calculus
first
>>59498330
post a haskell crash course for me. I only know normal programming
>protip you cant
>>59498526
http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way/
>>59498330
it's fp thread, not general
>>59498680
kys yourself
>>59498721
it was always /fpt/ from the first days
op here my bad
>>59498776
are you going to fix it?
>tfw no decent scheme or racket WM
>>59498863
it's just gonna 404 anyway whatever
Is JavaScript functional programming?
If you program it properly literally everything is encapsulated by an anonymouse function
https://www.youtube.com/watch?v=RqFgtYrw4J8#t=11m40s
Is a closure just a function that returns a lambda?
>>59498330
>SICP
Fun fact: This exists in info format: http://www.neilvandyke.org/sicp-texi/
>>59500224
Almost. A closure is when the function that gets returned can reference things inside of the function that created it.
>>59500358
Ah I see. So the returned function has its own sort of embedded scope.
>>59500376
Yep! It's a way of having a function own some bit of data it can use before actually calling it.
>>59500135
It's mixed paradigm. But you can't program in it in a super-functional way if you want to be reasonably efficient.
A good idea is to make the small-scale functional, and the large scale OO. Particularly with ES6.
Going full imperative OO means you have a nightmarish number of moving parts, and functional everything is very hard to organize and slow because JavaScript doesn't yet have things to deal with that. (Though, I like to think it might happen eventually)
>>59500335
>info
>>59500631
Ebooks in Emacs.
Nobody likes them, but they are kind of nice sometimes.
I also have one for the Common Lisp Hyperspec that lets me jump to definitions for functions and macros under my cursor in source files.
functional programming is gay