2
SUBSEQ:Clojure中使用SUBSEQ
(subseq (apply sorted-set (range 10)) > 5 < 7)
; (6)
這我理解 - 但
(subseq (apply sorted-set (range 10)) < 5 < 7)
也給(6),儘管(6不低於5)。有人可以解釋在應用subseq時究竟發生了什麼嗎?
SUBSEQ:Clojure中使用SUBSEQ
(subseq (apply sorted-set (range 10)) > 5 < 7)
; (6)
這我理解 - 但
(subseq (apply sorted-set (range 10)) < 5 < 7)
也給(6),儘管(6不低於5)。有人可以解釋在應用subseq時究竟發生了什麼嗎?
當你調用
(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
),但首先檢查是否新的序列的第一個元素s
fullfills start-test
與start-key
(< 5
)。如果沒有,則不包含在結果序列中。
subseq
調用take-while
與序列(6, 7, 8, 9)
,結果是6
。
所以subseq
只檢查一個元素爲< 5
,這是5
本身。
我希望對你有意義:-)
此外,您可以隨時看在documentation源。