Hacker News new | ask | show | jobs
by dserban 1115 days ago
Haskell course at university. Had fun doing all the exercises in the curriculum, and couldn't stop. Explored on my own how to implement in Haskell the more advanced programming patterns that weren't covered in the course. Had fun with lazily evaluated infinite lists where you evaluate the second element of the lazy list that was passed as an argument, and at the end of the same lower order function you return the lazy list but with its head chopped off, to have the algorithm run in constant space.

I have come to regard lazily evaluated infinite lists as a must-have before you can call something a functional programming language.

In trying to build more complex systems, I noticed that you really have to know what you're doing with Haskell, otherwise you end up with leaks that are very difficult to trace back.

What really solidified FP for me was taking an elective category theory for computer scientists course.

Today I'm building stuff in Scala, which is the closest you can get to being able to pay the bills while doing principled FP.