这个想法的灵感来自事实运算符,例如+,-,%等,可以看作是传递了一个或两个参数且没有副作用的函数。假设我或其他人编写了一种语言,该语言可以阻止传递两个以上的参数,并且也只能通过返回值来工作:
a)这样的语言会导致更容易理解的代码吗?
b)代码流程会更清晰吗?(被强制执行更多的步骤,可能会减少“隐藏”的互动
c)限制是否会使该语言在更复杂的程序中显得过于庞大。
d)(奖励)对优点/缺点的任何其他评论
注意:
仍然必须做出两个决定-第一个是是否允许用户在main()或其等效外部进行输入,以及关于传递数组/结构时将发生什么的规则。例如,如果某人希望单个函数添加多个值,则可以通过将其捆绑到数组中来解决该限制。可以通过不允许数组或结构与其自身进行交互来阻止这种情况,例如,仍然可以使您根据位置将每个数字除以不同的数量。
result = f(a)(b)…(z)
。ML语言家族(例如Haskell)就是这种情况,但从概念上讲,其他语言(例如Lisp,JavaScript或Perl)也是如此。