Closed umajho closed 1 year ago
譬如 append/2 的第二个参数、if/3 的第二、三个参数是惰性的。 为避免与其他不含惰性参数的函数相混淆,也许应该用前后缀区分它们。
append/2
if/3
比如使用 ! 作为后缀,但这么做存在一些问题:
!
eager
in-place
算了,作为完全没有副作用的语言,是否有惰性只是实现上的细节。 非惰性导致的无限循环或者低效应该算作 bug / 可以改进的地方, 在正确实现的情况下有无惰性并不会导致行为的差异。
因此没必要特意区分函数有无参数有惰性。
譬如
append/2
的第二个参数、if/3
的第二、三个参数是惰性的。 为避免与其他不含惰性参数的函数相混淆,也许应该用前后缀区分它们。比如使用
!
作为后缀,但这么做存在一些问题:!
有种eager
的感觉,与其要表达的不太相符。in-place
修改”,elixir 会用它表示 “遇到错误时直接抛出而非返回”,对只熟悉后两种语言的人来说可能会造成误解。