我一直认为函数式编程可以用 Python 完成。因此,我很惊讶 Python 在这个问题中没有得到太多提及,而且当它被提及时,它通常不是很积极。然而,对此并没有给出太多的理由(没有提到模式匹配和代数数据类型)。所以我的问题是:为什么 Python 不适合函数式编程?除了缺乏模式匹配和代数数据类型之外,还有更多的原因吗?还是这些概念对函数式编程如此重要以至于不支持它们的语言只能归类为二流函数式编程语言?(请记住,我在函数式编程方面的经验非常有限。)
您引用的问题询问哪些语言促进了面向对象和函数式编程。Python 并不 提倡 函数式编程,尽管它 工作 得相当好。
在 Python 中反对 函数式编程的最佳论据是 Guido 仔细考虑了命令式/OO 用例,而函数式编程用例则没有。当我编写命令式 Python 时,它是我所知道的最漂亮的语言之一。当我编写函数式 Python 时,它变得像没有BDFL的普通语言一样丑陋和令人不快。
这并不是说它不好,只是如果你切换到一种促进函数式编程的语言或切换到编写 OO Python 时,你必须比你更努力地工作。
以下是我在 Python 中错过的功能性东西:
list