2013-08-31 1 views
6

Clojure에서이 Ruby 코드를 어떻게 다시 작성할 수 있습니까?Clojure에서 Ruby의 each_cons를 작성하려면 어떻게해야합니까?

seq = [1, 2, 3, 4, 5].each_cons(2) 
#=> lazy Enumerable of pairs 
seq.to_a 
=> [[1, 2], [2, 3], [3, 4], [4, 5]] 

Clojure의 :

(??? 2 [1 2 3 4 5]) 
;=> lazy seq of [1 2] [2 3] [3 4] [4 5] 
+0

BTW, @fujy, 내가 추가 할 때' ruby' 태그를 사용하여이 질문과 유사한 상황에서 http://stackoverflow.com/questions/18072261/how-to-rewrite-rubys-arrayx-in-clojure?rq=1, @sawa가 제거했습니다. 나는 그와 동의하는 경향이있다. 이것은 Ruby에 관한 질문이 아닙니다. Clojure에 대한 질문입니다. – DNNX

+2

네,'루비 '에 관한 질문이 아니라는 것에 동의합니다. 그러나 대답 할 수있는 사람은 '루비'코드를 이해해야한다고 생각합니다. – fujy

답변

9

당신이 게으른 sequence.This 방법을 통해 sliding window라고 요구하고있다 당신이 달성 할 수

user=> (partition 2 1 [1 2 3 4 5]) 
((1 2) (2 3) (3 4) (4 5)) 
+0

전체 코드를 작성할 수 있습니까? 나는 출력물을보고 싶었다. –

+0

파티션 기능 문서를 읽을 때 더주의를 기울여야했다. 고맙습니다! – DNNX

+0

@DNNX 나도 그랬지 :) –

관련 문제