函数式编程的一个主要特征是使用无效函数.但是,这也可以用命令语言来完成.递归和lambda函数(例如C++ 0x)也是如此.因此,我想知道命令式编程语言是否是功能性编程语言的超集.
我不能说它们是否是彼此的子集.然而,我能说的是(除了真正深奥的语言)他们都是图灵完全的,这意味着最终他们都是同样强大的,但不一定具有同样的表现力.
一般来说,没有; 函数式编程是声明式编程的一个子集(包括逻辑编程语言,如Prolog).许多命令式语言从函数式编程语言中借用元素,但简单地使用lambdas或referentially-transparent函数并不能使命令式语言起作用; 函数式编程不仅仅是这些元素.