SUBSEQ:
(subseq (apply sorted-set (range 10)) > 5 < 7)
; (6)
我理解 - 但是
(subseq (apply sorted-set (range 10)) < 5 < 7)
也给出(6),即使(6不小于5)。有人可以解释当应用subseq时究竟发生了什么吗?
答案 0 :(得分:2)
致电时
(subseq (apply sorted-set (range 10)) < 5 < 7)
subseq
首先创建一个以s
开头的序列start-key
,5
,s
变为(5, 6, 7, 8, 9)
。
然后subseq
使用take-while
使用end-test
和end-key
(< 7
),但首先检查新序列的第一个元素{{1}使用s
(start-test
)填充start-key
。如果没有,则不包括在结果序列中。
< 5
使用序列subseq
调用take-while
,结果为(6, 7, 8, 9)
。
因此6
只检查subseq
的一个元素,而< 5
本身就是{。}}。
我希望这对你有意义: - )
此外,您始终可以查看documentation中的来源。