我正在使用funcool/cats
,将 monoid 附加到以下代码:
(m/mappend (maybe/just [1 2 3])
nil
(maybe/just [4 5 6])
(maybe/nothing)) ;;=> #<Just [1 2 3 4 5 6]>
nil
将其视为可能/无的理由是什么?
注:版本为[funcool/cats "1.2.1"]
我正在使用funcool/cats
,将 monoid 附加到以下代码:
(m/mappend (maybe/just [1 2 3])
nil
(maybe/just [4 5 6])
(maybe/nothing)) ;;=> #<Just [1 2 3 4 5 6]>
nil
将其视为可能/无的理由是什么?
注:版本为[funcool/cats "1.2.1"]
从提交日志来看,似乎是
只是为了(原文如此)避免意外的空指针异常
这也记录在这里: http: //funcool.github.io/cats/latest/#nil
鉴于 nil 既是值又是类型,我们将 nil 类型扩展为等价于 Maybe monad 的 Nothing。