It 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.
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.