Кошки Clojure добавляют нулевое поведение

Я использую funcool/cats, добавляю моноид со следующим кодом:

(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"]


person nha    schedule 03.03.2016    source источник


Ответы (1)


Из журнала коммитов видно, что

только для (sic) избегайте случайных исключений нулевого указателя

Это также задокументировано здесь: http://funcool.github.io/cats/latest/#nil

Учитывая тот факт, что nil является одновременно и значением, и типом, мы расширили тип nil, чтобы он был эквивалентен Nothing монады Maybe.

person sindux    schedule 03.03.2016