建议函数类型写法采用 haskell 风格

目前为 (T, T) -> T,建议采用 haskell 风格的 T -> T -> T,这样代码中会有更少的括号,函数类型复杂时,尤其是高阶函数,更能够提高可读性。

增加 void 类型来标识无参数值和无返回值的情况: void -> void

T -> T -> T 的语法天生伴随这一种默认柯里化的感觉,但 MoonBit 的函数是原生的多参函数。原生多参函数的好处是:

  • 性能更好。事实上 OCaml/Haskell 等默认柯里化的语言都会通过编译优化,把柯里化去掉
  • 做 named argument 和 optional argument 简单非常多
  • 对于像 MoonBit 一样有副作用的语言,原生多参函数其实性质更好。柯里化的函数,每个箭头都有可能发生计算和副作用。但原生多参函数保证了只有 fully applied 才会发生计算和副作用,类型上表达了更多信息

不过,一些增加可读性的语法糖是可以考虑的。比如给单参数函数加个省略括号的语法糖之类的

4 个赞

个人倒觉得单参数函数不省略括号反而不失可读性,大众化:blush:
个人觉得还是有限的函数式风格即可,大众基数在那,过了会适得其反吧:blush:

1 个赞