프로그래밍 6

[Brave Clojure #5] 챕터 4 연습문제

챕터 4 연습문제를 풀었습니다. ;;; ex 4.1 (def result (glitter-filter 3 (mapify (parse (slurp filename))))) (map :name result) ;; => ("Edward Cullen" "Jacob Black" "Carlisle Cullen") ;;; ex 4.2 (defn append [[car & cdr] new-suspect] (if car (cons car (lazy-seq (append cdr new-suspect))) (list new-suspect))) (append '() 1) ;; => (1) (append '(1 2 3 4) 5) ;; => (1 2 3 4 5) ;;; ex 4.3 (def validators {:..

[Brave Clojure #4] reduce로 map, filter, some 구현하기

map의 설명을 마치 고 저자는 이렇게 말합니다. "If you want an exercise that will really blow your hair back, try implementing map using reduce, and then do the same for filter and some after you read about them later in this chapter." 안해 볼 수 없겠죠 (defn map-by-reduce [f xs] (seq (reduce #(conj %1 (f %2)) [] xs))) (map-by-reduce inc [1 2 3 4]) ;; => (2 3 4 5) (def food-journal [{:month 1 :day 1 :human 5.3 :critter 2..

[Brave Clojure #2] leiningen은 한 물 갔고, deps.edn을 쓰자

deps.edn 1챕터에서 clojure 프로젝트를 생성하고, 실행하고, 빌드하는 과정은 leiningen이라는 외부 프로그램을 이용합니다. 부록에서는 추가적으로 boot라는 프로그램도 알려주고 있습니다. 책을 쓰던 당시에는 거의 대부분의 사람이 liningen을 사용했고, boot라는 프로그램이 점점 인기를 얻고 있었던 것 같습니다. 그러나 liningen과 boot의 차이점을 알아보기 위해서 검색을 좀 해봤는데, 여전히 liningen은 많은 사람들이 쓰고 있었지만 사용비중이 점차 줄어들고 있는 상황이고, boot는 거의 사라져버렸습니다. 대신해서 많은 사람들이 쓰고있고, 줄어드는 liningen 사용량의 원인이 되는 것이 바로 deps.edn입니다. deps.edn은 clojure 언어를 유지보수하..

[Brave Clojure #1] Brave Clojure 공부 시작

평소에 관심있었던 Clojure 언어를 공부하기 시작했습니다. 여러 자료들 중, 가장 괜찮아 보이는 Brave Clojure라는 책을 골랐습니다. 풀네임은 Clojure For the Brave and True이고, 부족한 영어실력으로 한글화를 해보자면 "용감하고 진실한 자들을 위한 클로져" 쯤 될 것 같습니다. 프로그래밍 언어를 가르치는 책 치고는 꽤나 우스꽝스러운 제목입니다. 비단 제목만 우스꽝스러운 것은 아니고 공부의 과정이 조금이라도 덜 지루하게끔 저자들이 채택한 전략인 것 같습니다. 그래서 새로운 언어를 배우는 것을 4개의 미궁을 헤쳐나가는 것이라고 비유하기도 하고, 실생활과 밀접한 예제를 피하고 "호빗 공격하기"나 "반짝이는 뱀파이어 쫓기"와 같은예제를 낼 것이라고 엄포를 놓습니다. 4개의 미..

구글 검색을 하다보면 주어지는 구글 입사기회

구글에서 개발과 관련된 검색을 열심히 하다보면 구글이 입사기회를 준다는 사실을 알고 계셨나요? 저도 뜬소문으로만 들어 봤었는데요. 최근에 운이 좋게 직접 경험해볼 수 있는 기회가 생겨서 한 번 참여해봤습니다. Google Foo Bar 이 채용 절차의 공식 명칭은 "Google Foo Bar" 입니다. "Foobar Challenge"로도 많이 불립니다. 구글 검색 기록을 바탕으로, 구글이 원하는 유형의 사람이라고 내부적으로 판단하게되면 구글 화면이 갈라지면서 아래와 같은 방식으로 시작됩니다. 이 챌린지를 진행하다보면 지인을 추천할 수 있는 초대장을 주는데, 이 추천 코드를 통해서도 접근할 수 있게 됩니다. 아쉽게도 제가 직접 구글의 간택을 받은 것은 아니고, 지인의 추천 코드를 통해 접근권한을 얻었습니..