在clojure中使用subseq

时间:2013-04-25 14:16:25

标签: clojure

SUBSEQ:

    (subseq (apply sorted-set (range 10)) > 5 < 7) 
    ; (6)

我理解 - 但是

    (subseq (apply sorted-set (range 10)) < 5 < 7) 

也给出(6),即使(6不小于5)。有人可以解释当应用subseq时究竟发生了什么吗?

1 个答案:

答案 0 :(得分:2)

致电时

(subseq (apply sorted-set (range 10)) < 5 < 7)

subseq首先创建一个以s开头的序列start-key5s变为(5, 6, 7, 8, 9)

然后subseq使用take-while使用end-testend-key< 7),但首先检查新序列的第一个元素{{1}使用sstart-test)填充start-key。如果没有,则不包括在结果序列中。

< 5使用序列subseq调用take-while,结果为(6, 7, 8, 9)

因此6只检查subseq的一个元素,而< 5本身就是{。}}。

我希望这对你有意义: - )

此外,您始终可以查看documentation中的来源。