I've spent hours trying to figure out what's wrong and it was because this shit silently accepted a vector in place of a scalar. FUUUUCK FUCKETY FUUUUCK. Static typing should be everywhere, even in math software, even in fucking Python, I want ALL programming to always be strictly and statically typed. Fucking idiots, ARRGGH.
Name:
Anonymous2014-07-09 22:06
I tried Haskell before CL. Most of the programming I do is the application/implementation of numerical methods for solving economic models.
Even though I recognize the `elegance' of certain Haskell constructs, the language was a straitjacket for me because of two things: the type system and the functional purity.
The type system required a lot of scaffolding (Either, Maybe, ...) when I wanted to do something non-trivial. Indeed, Haskell makes the construction of this scaffolding really easy, but in CL, I just find that I don't have to do it and I can spend time writing more relevant code instead.
Also, sometimes I had difficulty rewriting my algorithms in purely functional ways. I agree that it can always be done, but I had to spend a lot of time fighting Haskell.
What attracted me to Haskell initially was the elegance found in toy examples (eg the Fibonacci series). It took me a lot of time to realize that toy examples are, well, toy examples, and whether a language handles them well is not relevant to problems of a larger scale. For example, pattern matching looked fascinating, until I realized that I am not using it that often.
Also, when I tried Haskell I didn't know about macros, which give Lisp a lot of extra power. Now of course I would not ever use a language without CL-like macros.