dub*_*jim 29 scheme functional-programming
我非常清楚功能和命令式编程技术之间的区别.但是人们普遍倾向于谈论"功能语言",这真让我感到困惑.
当然,像Haskell这样的语言比C等其他语言对函数式编程更友好.但即便是前者也会进行I/O(它只是将它保存在贫民区).你可以用C编写功能程序(这简直太荒谬了).所以也许这只是程度问题.
尽管如此,即使是程度问题,当有人称Scheme为"功能语言"时,它意味着什么?我看到的大多数Scheme代码都是必不可少的.如果你愿意的话,只是Scheme可以很容易地用函数式编写吗?Lua和Python也是如此.它们也是"功能语言"吗?
我(真的)不想成为一名语言警察.如果这只是一种松散的谈话方式,那很好.我只想弄清楚它是否确实有一些确定的意义(即使这是一个程度问题),我没有看到.
Nor*_*sey 16
在以编程语言为生的人中,"函数式编程语言"是一个相当弱的术语.有一个强烈的共识:
少数人还为以下语言保留"功能语言"一词:
就像在Agda,Clean,Coq和Haskell这样的语言中.
除此之外,被认为是函数式编程语言通常是一个意图问题,也就是说,设计师是否希望将其称为"功能性".
Perl和Smalltalk是支持一流功能但其设计者不会将其称为功能的语言示例.目标Caml是一种被称为功能的语言示例,即使它具有带继承和所有内容的完整对象系统.
被称为"功能"的语言往往具有如下特征(取自函数式编程的定义点):
特定编程语言具有越多的语法和构造以使得上面列出的各种编程特征容易/无痛地表达和实现,越有可能将某人称为"功能语言".