Clojure猫附加零行为

时间:2016-03-03 11:07:54

标签: clojure category-theory monoids

我正在使用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"]

1 个答案:

答案 0 :(得分:1)

来自commit log,似乎是

  

只为(原文如此)避免意外的空指针异常

此处还记录了这些内容:http://funcool.github.io/cats/latest/#nil

  

鉴于nil既是值又是类型,我们已经扩展了   nil类型相当于Maybe monad的Nothing。