Skip to content

Instantly share code, notes, and snippets.

@kpuputti
Created August 6, 2014 12:24
Show Gist options
  • Save kpuputti/da94c1a61f8fd979217a to your computer and use it in GitHub Desktop.
Save kpuputti/da94c1a61f8fd979217a to your computer and use it in GitHub Desktop.
Haskell

Been studying a bit of Haskell during the previous (rather hectic) weeks. Learnings this far:

  • Proper type inference (vs. Scala etc.) is wonderful and removes all the pain that have turned me off from traditional statically typed langs before
  • Type classes and parametric polymorphism seems like a very good and natural idea, easy to understand (at least at face value) and very explicit without any big hassle (like the variance/covaricance/invariance things with subtyping)
  • Monadic IO etc. are not as hard as I thought it to be with some background knowledge
  • Curried functions with minimal function call syntax seem essential for proper FP-style programming (fn composition, point-free style, etc.)
  • JavaScript seems even more dangerous now, I want me some type safety

I've favored dynamically typed languages for years now, but especially the good type inference takes most of the pain away. Using immutable values, recursion, and strong types seems very natural to me now.

Note that I've only been reading 9 chapters of http://learnyouahaskell.com/ , read some articles and watched some SPJ lectures, only playing a little bit with the GHCI REPL, so these are just very initial thoughts.

--

also, proper tail call optimisation enables using recursion as a natural solution

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment