随着对函数式编程语言的重新关注,我已经看到Smalltalk和FPL之间有一些相似之处,即闭包(Smalltalk中的BlockClosures)。但是,Smalltalk不是FPL吗?
有什么需要考虑的呢?
最佳答案
使用面向对象范例进行编程是通过将问题域实体识别为对象并对其进行建模来创建程序,然后使它们之间相互协作以解决每个问题实例。
使用功能范式进行编程是将问题建模为数学问题,并创建一个数学函数(通过组合其他函数)来为每个问题实例计算问题解决方案。
在我看来,函数式编程语言是为使用函数式编程范式解决的问题提供解决方案的语言,该语言可以按原本的想法表达该解决方案。如果您需要“转换”解决方案的某些部分,使其适合语言所能表达的内容,则它不完全支持您以前认为该解决方案的范例。
在大多数情况下,Smalltalk可以表达使用面向对象编程范例创建的所有解决方案,但它最初不能表达使用功能编程范例创建的许多解决方案。这就是为什么我不认为它是FPL。
尽管最初并不能表达FPL可以提供的所有解决方案,但是Smalltalk具有极大的可扩展性,您可以扩展它以表达FPL可以提供的所有解决方案。
关于programming-languages - 为什么smalltalk不是一种功能编程语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3527753/