我很难理解Clojure rest和nextClojure 之间的区别.官方网站关于懒惰的页面表明偏好可能应该是使用rest,但它并没有真正解释两者之间的差异.任何人都能提供一些见解吗?
在这段视频中,Rich Hickey为Lisp程序员介绍了Clojure.
在时间01:10:42,他在Clojure/Common Lisp/Scheme/Java中讨论了nil/false/end-of-sequence /'().他说:"计划是真实的,但它们是破碎的."

我不明白他为什么这么说,为什么他认为它"破碎"了?
什么时候比另一个更好?是一个比另一个更快还是唯一的区别是假或零的回报?
我正在阅读一些Clojure代码,其中包含一堆未初始化的值,就像nil传入的记录中的数值一样.
现在很多Clojure图书馆都认为这是惯用语.这意味着它是一个公认的惯例.
但它也导致了NullPointerException,因为并非所有Clojure核心功能都可以处理nil输入.(也不应该).
其他语言具有Maybe或者Option在其为空时代理该值的概念,作为NullPointerException降低风险的方式.这在Clojure中是可能的 - 但不是很常见.
你可以做一些技巧,fnil但它并不能解决所有问题.
另一种方法是简单地将未初始化的值设置为符号,:empty-value以强制用户在所有处理代码中显式处理此场景.但这并不是一个很大的提升nil- 因为在运行时之前你并没有真正发现所有场景(在其他人的代码中).
我的问题是:在Clojure中是否存在一种惯用的替代品?