4clojure.org
에 문제 # 56에 대해 distinct
을 다시 쓰려고하는데 현재 해결책이 있지만 다른 사람들과 놀고 있습니다.group-by는 겉으로보기에 범위의 순서를 변경합니다.
내 가장 최근의 시도가 마지막으로 단위 테스트 실패 이유를 혼란 스러워요 :
;; unit tests:
;; (= (__ [1 2 1 3 1 2 4]) [1 2 3 4])
;; (= (__ [:a :a :b :b :c :c]) [:a :b :c])
;; (= (__ '([2 4] [1 2] [1 3] [1 3])) '([2 4] [1 2] [1 3]))
;; (= (__ (range 50)) (range 50))
;; most recent attempt
(fn [xs] (keys (group-by identity xs))) ;; fails for (range 50)
;; what?!?!
(keys (group-by identity (range 50))) ;; => (0 32 1 33 2 34 3 35 4 36 5 37 6 38 7 39 8 40 9 41 10 42 11 43 12 44 13 45 14 46 15 47 16 48 17 49 18 19 20 21 22 23 24 25 26 27 28 29 30 31)
나는이 겉으로는 임의의 순서를 받고 있어요 이유는 무엇입니까?
PS : 문제는 여기에 링크,하지만 당신은 계정 http://www.4clojure.com/problem/56