3 ms·
Haskell is a puzzle language (http://prog21.dadgum.com/38.html http://prog21.dadgum.com/38.html). I intend to learn some Haskell but I keep wondering if it mig
by platz 13y ago
Haskell is a puzzle language (http://prog21.dadgum.com/38.html http://prog21.dadgum.com/38.html).
I intend to learn some Haskell but I keep wondering if it might be more useful to spend some time with Clojure or F#
- spullara 13y agoPeople who program because they like puzzles, puzzle me. I like things that are straight forward and obvious when I program.
- platz 13y agoSure, but if you're mr. straight forward and obvious all the time, I bet your skills will plateau faster than the puzzler.
- merijnv 13y ago> I like things that are straight forward and obvious when I program. So do I, which is why I program in Haskell rather than the other languages which make me worry about a ton of irrelevant things like the global state of my program and don't let me enforce invariants of my code in the type system, guaranteeing I can't violate without making the type checker complain.
- cgag 13y agoStraight forward and obvious meaning directly align with the first thing you learned when learning to program. I like my languages straight forward, that's why I stick to English.
- tome 13y agoPersonally I find Python, Ruby, Lua, C to be "puzzle" languages. The puzzle is how to manipulate the primatives like arrays, pointers, dictionaries, etc. to express the natural, higher-level concepts that you really want, like map, fold, etc. Programmers in my previous job would feel pleased with themselves if they'd solved the "puzzle" of an array processing loop which was a simple recursive function in disguise.
- andolanra 13y agoIt strikes me that 'puzzle languages' are just languages with non-mainstream semantics. If we lived in an alternate universe where the dominant paradigm was entirely pure, then those odd languages where any bit of code can change any part of the state of the program would be puzzle languages. Hague defines puzzle languages by referencing the experience of realizing you're going down the wrong path and having to completely restructure your code; I have had this experience in Python and Java in the past, and conversely, I program in Haskell more or less daily and therefore almost never have that experience there any longer.
- callmecosmas 13y agoHaskell certainly has a big learning curve, but the experience will be much more rewarding than learning Clojure or F#. Haskell is a (relatively) uncompromising language and Clojure and F# are really just trying to take some of the features of Haskell and bring them into the mainstream. So if you learn F# or Clojure it may help you if you ever try to learn Haskell, but if you learn Haskell, F# and Clojure will be trivial to learn.
- Dewie 13y agoYou could just as easily say that Python (one of the languages listed as non-puzzle) is a puzzle language because it lacks goto, so you have to puzzle out ways to model your control flow and looping into the more rigid while-loops, for-loops and if-else-branches. "I want to execute this block at least one time, but not necessarily the second, and I have to check these conditions here, but I have to declare the boolean variable over here... Oh my kingdom for a goto!"