为什么Clojure尽管如此强调功能范式,却不使用Maybe/ Optionmonad来表示可选值?Option在Scala中使用非常普遍,Scala是我经常使用的函数式编程语言.
有没有办法使用,.each所以如果对象为零或空(如果没有添加额外的空/空白测试,它不会抛出错误?
似乎如果我说phonelist.each do |phone|如果phonelist是空的,那么不应该执行该块.
但是在我看来(haml)我有- @myvar.phonelist.each do |phone|,如果phonelist是空的,它会抛出一个NoMethodError.
我遇到了很多,总是通过为.blank添加显式检查/分支来解决这个问题?但似乎应该有一种更简单的方法来告诉.每个空手段什么都不做.
从对另一个问题的评论中,有人说Clojure成语更喜欢返回nil而不是像Scheme中的空列表.这是为什么?
喜欢,
(when (seq lat) ...)
Run Code Online (Sandbox Code Playgroud)
代替
(if (empty? lat)
'() ...)
Run Code Online (Sandbox Code Playgroud)