grayrest

joined 1 year ago
[–] grayrest 3 points 1 year ago

I don't know the specific motivation here but in general it's for package development to not be tied to the language release. People also generally have different backwards compatibility expectations for the stdlib vs a regular library and that constrains the development of the package. In Python the meme is that stdlib is where packages go to die. Not all large stdlib languages feel that way. Clojure, for example, has a pretty sizeable stdlib while being code frozen without a lot of demand for change. In general, however, language developers prefer not having things in stdlib.

[–] grayrest 1 points 1 year ago

I got interested in FP in 2004 when I realized that Intel's Netburst architecture wasn't frequency scaling as hard as expected and thus we'd inevitably have multiple execution threads as Moore's Law marched onward.

That led me to a bunch of unfocused part time wandering through OCaml, Scheme, and Common Lisp. I then got into Clojure and wrote that professionally for a few years but I've mostly been paid to write JS. I personally like functional leaning JS but I've settled on signals/dataflow programming as enough of a reduction in state to be useful while still being generally acceptable to most teams.

[–] grayrest 3 points 1 year ago (1 children)

Rust is not a FP language. It's an imperative language with restricted state and a few FP constructs included.

To me what makes a language FP is the mindset and that boils down to deciding to fold instead of loop and you lean to closure captures instead of declaring variables. Both sides of these are basically equivalent but having a function as the big hammer you use to nail everything together is what makes it functional programming instead of X programming with some functional ideas carried over.

When people structure a request like this they're generally after a way to really get into the ideas and the best way to do that is to use a language that's built around FP ideas. I personally recommend Clojure and OCaml. If you'd like to do Scheme via the Wizard book then that's fine as well. I don't really like the pure functional languages (Haskell and friends) because I think that state is a useful thing in small doses and don't like jumping through the extra hoops to get at it.