原谅我提出新问题和可能不正确的术语.
Clojure向量函数生成不包含停止值的值.例如:
=> (subvec [:peanut :butter :and :jelly] 1 3)
[:butter :and]
=> (range 1 5)
(1 2 3 4)
Run Code Online (Sandbox Code Playgroud)
范围的doc明确地说明了这一点,但没有给出理性:"......从开始(包括)到结束(独占)......返回一个懒惰的num seq.".
在Ruby中,这些操作是包容性的:
(1..5).to_a => [1,2,3,4,5] [:花生,黄油,和:,果冻] [1,3] => [:黄油,:和:果冻]
显然这些是非常不同的语言,但我想知道是否有一些潜在的原因,除了语言设计者的个人偏好?
使结束独占允许您(count collection)在不获取NPE的情况下执行指定为端点的操作.这是两种方法之间最大的区别.