Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Functional programming beyond Haskell

Name: Anonymous 2015-02-20 8:36

We have all learned functional programming in Haskell, but there are more functional languages like Lisp, Scheme, ML, and Clean.

Why should we even bother to look further than Haskell?

- You want your programs to run faster.
- Monads drive you mad (what are they anyway? warm fuzzy things?).
- You need objects.
- You sometimes need a more powerful module system.
http://www.cs.uu.nl/wiki/pub/Stc/BeyondFunctionalProgrammingInHaskell:AnIntroductionToOCaml/ocaml.pdf

Name: Anonymous 2015-02-27 18:57

>>73
lazy by default → built-in modularity. Abstractions are not only possible to a much greater extent than in the imperative shit-slums, they also combine very easily and efficiently.

Purity brings a lot for safety because it means lack of global state and guarantees (with Safe Haskell) that a large portion of code can never do anything besides returning a value. This can be extended to create secure systems, see for example https://hackage.haskell.org/package/lio

unsafePerformIO is used by dumbass newfags mostly, except in the core libraries of course, but those have pure interfaces.

Haskell's code is short and denotation-like, it's a lot more readable than the {var a; a = b; b = c; c = c - 1; b = a - b*c; return a; } diarrhea.

You do not need to know every possible GHC extension. For example, Oleg Kiselyov uses only GADTs and the *Instances extensions.

No, "dynamic typing" is a library, not an extension.

Indentation is not forced. You can use your semicolons and curly braces all you want. Simon P. Jones does, for example.

There are no good subtyping mechanisms. Subtyping is shit that wrecks type inference, type safety, and developer time. Subclassing is much better and Haskell has it (no GHC extensions needed).

Any more dumbass misinformed non-reasons to hate Haskell (which is shit, by the way, but for a whole different set of reasons)?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List