Frankly, Python is not the best language for functional programming. Reasons include:
So seriously, why are we using Python? One reason trumps all others: you already know Python. Python is a great choice for learning programming basics, OOP, Algorithms, and Data Structures, and we don't think the tradeoff of learning a new language at this point in the curriculum is worth it.
We'll still be able to cover the most important concepts of functional programming in Python, even if we have to jump through a hoop or two to do it. Things like:
We plan to someday release a "Functional Programming 2" course in a more functional language. Perhaps Haskell, OCaml or Elixir.
But on the other hand... Python do be pretty popular...
