@Ghastlyghost no. Python, or Go.
Starting from C, Go is actually easier. Python is cleaner.
Haskell is like programmers from the early 2000s looked at Perl 5 and said "to many alphabetic characters. Needs more weird, inscrutable symbols".
@Ghastlyghost Look, fair enough.
But functional programming is very easy in Python. You don't need Haskell for that. Think less in terms of "I'll write a function for that" and more in terms of "I'll string a series of iterators and filters together for that".
My caution with this comes from some code I reviewed yesterday.
This function took a list, created a list comprehension to find a specific value inside each of the dictionaries in that list, created another list comprehension to find the values that were in another dictionary (a set of legal values), sorted it according to the legal values dictionary values, reversed that, and then found the first element.
I replaced that with a `for` loop that iterated through the original dictionary, got the values, `continue`d if they weren't in the legal values dict, and then kept a track of the maximum value.
Their code was O(n log n), mine was O(n). Mine uses less memory too.
So, yes, learn the functional programming twist on things. But that's a practice that you can't easily take back to C. I'd suggest thinking about what you actually want to learn, rather than just free-walking wherever functional programming takes you.
@Ghastlyghost If Haskell is like the Gofer dialect we learned at university, then playing with Haskell will have you itching to get back to C in no time! 😉
(I think our textbook was Bird & Wadler's "Introduction To Functional Programming", but I'm not sure I'd recommend it, and it isn't language specific.)