4Clojure의 53번 문제로 Code Golf를 즐기고 있다. (지난 글)
마지막 스코어가 101글자, 도저히 더 못줄이겠다 싶었는다.
;; 101
(fn [& x]
(#(case (count %) 1 [] %)
(nth
(filter #(apply < %)
(mapcat seq
(iterate #(mapcat (juxt butlast rest) %)
x)))
0)))
그런데, 점심 시간에 동료들에게 Code Golf를 소개하다가 방법이 떠올랐다! 불편한 모바일 브라우저에서 타이핑하여 성공! 이제 98!
;; 98
(fn [m & x]
(#(case (count %) 1 [] %)
(nth
(filter #(apply < %)
(m seq
(iterate #(m (juxt butlast rest) %)
x)))
0))) mapcat
(let[])바인딩 대신 첫 인자로 함수를 넘겨받는 방법으로 두번 사용된 mapcat을 하나 줄일 수 있었다.
마지막 스코어가 101글자, 도저히 더 못줄이겠다 싶었는다.
;; 101
(fn [& x]
(#(case (count %) 1 [] %)
(nth
(filter #(apply < %)
(mapcat seq
(iterate #(mapcat (juxt butlast rest) %)
x)))
0)))
그런데, 점심 시간에 동료들에게 Code Golf를 소개하다가 방법이 떠올랐다! 불편한 모바일 브라우저에서 타이핑하여 성공! 이제 98!
;; 98
(fn [m & x]
(#(case (count %) 1 [] %)
(nth
(filter #(apply < %)
(m seq
(iterate #(m (juxt butlast rest) %)
x)))
0))) mapcat
(let[])바인딩 대신 첫 인자로 함수를 넘겨받는 방법으로 두번 사용된 mapcat을 하나 줄일 수 있었다.
댓글 없음:
댓글 쓰기