2015년 8월 24일 월요일

Living Clojure -- Week 1, Day 1

Living Clojure 에서 추천하는 7주 프로그램을 시작했다. 당연히 이런 프로그램에서 가장 힘든건 시작이 너무 쉽고 지루하다는 것이다.

Week 1, Day 1의 주요 내용은 4Clojure의 몇가지 문제를 풀어보는 것이고, 그 문제들은 대부분 기본 자료형(list, vector, map, set)의 간단한 사용법을 알아보는 것.

기억에 남은 건 = 함수.

당연히 인자 2개를 예상했지만 [x], [x y], [x y & more] 이렇게 3가지 버전이 오버로딩되어 있다. (doc =) 으로 설명을 봐도 오버로딩되어 있다고 알려줄 뿐 동작을 설명해주지 않는다. 소스코드를 보면 알 수 있는데... [x] 를 기본으로 보면 [], [y], [&more] 들이 결국 하나로 설명된다. base case는 true이며 재귀적으로 (first more)에 대해 비교를 한다.

(= nil nil)
=> true
(= nil '())
=> false
(nil? '())
=> false

Scheme에서는 '()가 nil이었지만 Clojure가 아니라는 점이 특이.

댓글 없음:

댓글 쓰기