As a kid during high school, I learned Q Basic to do some programming. And the problem I always ran into was I was trying to do a radix sort, and I kept blowing the stack on the radix sort because Q Basic only had like ten, so it could only handle ten recursions at a time. And it was so frustrating because I couldn't do anything.
And my mentor said, well, give Lisp a try. So I did some searching and went out and found Scheme and got onto some chats and tried out some stuff. And before I knew it, I had a working radix sort that was beautiful and short and made sense and was clear and clean.
And I was like, oh, yes, please, more!
And then I sort of went from there. And so I had a pretty early introduction to functional programming and saw its benefits or reaped its benefits pretty early on.
Q: What did you see those benefits as being?
I think early on, the biggest benefit was it gave me a way of engaging with the flow of the data through my program in a manner that was a lot simpler.
So I didn't have to track a massive global state and the changing of the global state and the shifting of these variables through lots and lots of different control points. So I didn't have to feel like I was tracking state across multiple control paths, jumping around everywhere. I could see the flow of the data through the code a lot easier, and I could track what was going to happen and how the data was going to change over time a lot more easily.
And that made a big difference in my ability to structure the code.