Artificial intelligent assistant

restとnextの使い分けについて (clojure in action) user=> (defn print-seq [s] (when (seq s) (prn (first s)) (recur (rest s)))) `seq``recur``next``rest` `rest``next` user=> (rest []) () user=> (rest nil) () user=> (next []) nil user=> (next nil) nil `rest``nil` `seq``nil``nil` user=> (seq []) nil user=> (seq nil) nil `nil``rest``recur` user=> (print-seq nil) nil user=> (print-seq []) nil user=> (print-seq [1 2]) 1 2 nil `next` user=> (defn print-seq2 [s] (when (seq s) (prn (first s)) (recur (next s)))) #'user/print-seq2 user=> (print-seq2 []) nil user=> (print-seq2 nil) nil user=> (print-seq2 [1 2]) 1 2 nil `next``rest` clojure1.8

`()``nil``seq``nil`


user=> (coll? ())
true
user=> (coll? nil)
false


API`seq`(seq nil) returns nil.`seq``nil``nil`

xcX3v84RxoQ-4GxG32940ukFUIEgYdPy 0712c282cbc46f1475d21b9754a8dbb5