相关疑难解决方法(0)

Clojure:休息与下一个

我很难理解Clojure restnextClojure 之间的区别.官方网站关于懒惰的页面表明偏好可能应该是使用rest,但它并没有真正解释两者之间的差异.任何人都能提供一些见解吗?

clojure lazy-evaluation

66
推荐指数
3
解决办法
9254
查看次数

为什么Clojure的父亲说Scheme的真/假被打破了?

在这段视频中,Rich Hickey为Lisp程序员介绍了Clojure.

在时间01:10:42,他在Clojure/Common Lisp/Scheme/Java中讨论了nil/false/end-of-sequence /'().他说:"计划是真实的,但它们是破碎的."

滑动

我不明白他为什么这么说,为什么他认为它"破碎"了?

null scheme clojure common-lisp

34
推荐指数
2
解决办法
2796
查看次数

何时在Clojure中使用"if"和"when"?

什么时候比另一个更好?是一个比另一个更快还是唯一的区别是假或零的回报?

if-statement clojure

25
推荐指数
2
解决办法
7211
查看次数

在Clojure中是否有一种习惯性的替代方案?

我正在阅读一些Clojure代码,其中包含一堆未初始化的值,就像nil传入的记录中的数值一样.

现在很多Clojure图书馆都认为这是惯用语.这意味着它是一个公认的惯例.

但它也导致了NullPointerException,因为并非所有Clojure核心功能都可以处理nil输入.(也不应该).

其他语言具有Maybe或者Option在其为空时代理该值的概念,作为NullPointerException降低风险的方式.这在Clojure中是可能的 - 但不是很常见.

你可以做一些技巧,fnil但它并不能解决所有问题.

另一种方法是简单地将未初始化的值设置为符号,:empty-value以强制用户在所有处理代码中显式处理此场景.但这并不是一个很大的提升nil- 因为在运行时之前你并没有真正发现所有场景(在其他人的代码中).

我的问题是:在Clojure中是否存在一种惯用的替代品?

null clojure maybe

8
推荐指数
1
解决办法
1423
查看次数