This is sort of a follow-up on my previous post about my adventure with Haskell. In retrospect, I’m happy I wrote my experience down since time would have since blurred the details of my initial experience. I have not really used Haskell itself for anything really since my last effort with the language, but things have stuck with me in a way that I hadn’t thought initially possible. All this talk about learning functional programming to make you a better programmer, I thought it was if not untrue then at least greatly exaggerated.
In general for C#, my main day-to-day language:
- Making higher order functions, a lot. I wish the syntax for this was a whole lot better in C#
- Annoyance with the poor type inference in C#
- A strong desire to use the Y combinator just because I know how it works
- A wish that every function call would be curried by default. Just a call with too few parameter could give you a
- Some way to mark a member function as pure that would allow me to verify that I’m not altering state anywhere
Either way, Haskell has continued to stay attractive. Perhaps because it brings a real mind-challenge to creating problems that would be mundane to solve in an imperative language. It’s the puzzle aspect that drives the attraction. The great mystery of using a language whose paradigm still presents challenges to me is a constant lure. A language that won’t allow me to cheat and mess up it’s paradigm when I am too dimwitted to understand how to solve the problem in the right way.
I’ve started to watch the haskell tag on stackoverflow, and responding whenever I think I know the answer. Always I’m inordinately proud of any upvotes or even getting to the right answer simply because it feels like an accomplishment rather than some piece of research that the poster usually could have done himself using a few minutes of google.
I try to keep programming on my spare time to keep broadening my senses and I really need to make something real in Haskell. Not just some little silly piece of demo software but an actual creation that does something. Often when I start doing at-home projects the enthusiasm dries up after the concept is proven since the rest is all boilerplate in a technique that I already am familiar with. Writing a piece of real software in Haskell would make that boilerplate interesting and challenging in itself I imagine.
Now to find that piece of software that none or few have written before me, that might have real users in the end and is within my grasp to actually complete…