본문 바로가기

Clojure

(10)
[Clojure] Clojure Reactive 와 Clojure CSP(clojure.async) swannodette.github.io/2013/07/12/communicating-sequential-processes/ Communicating Sequential Processes Communicating Sequential Processes 12 July 2013 With the arrival of core.async, ClojureScript provides a powerful advantage over other popular compile to JavaScript languages like CoffeeScript, Dart, and TypeScript. These languages fail to address the sing swannodette.github.io CSP (고루틴) 의 구현체..
[Clojure] Clojure 프로젝트 시작 템플릿 확인 clj-templates.com/ clj-templates clj-templates.com Leiningen / Boot 에서 새프로젝트를 만들때 사용할수 있는 템플릿을 쉽게 확인할수있다. lein new Clojars 에서 템플릿만 뚝딱 가져온단다. 빌드툴 아이콘에 마우스를 가져다대면 바로 명령어를 확인할수있고 클릭하면 카피된다.
[Clojure] 종합선물세트(?) 같은 라이브러리 github.com/cloojure/tupelo cloojure/tupelo Tupelo: Clojure With A Spoonful of Honey. Contribute to cloojure/tupelo development by creating an account on GitHub. github.com Tupelo: Clojure With A Spoonful of Honey 다양한 Helper 함수들을 제공해주는 라이브러리, Clojure의 기본 함수들은 정말 강력하고 까리한데.. 가아끔 아니 이게 없다고? 할때가 있다. 특히 string 다룰때 그때 Java interop 해서 쓰면 왠지 지는기분인데.. 전반적으로 유용한 함수들을 적절히 모아놓은 라이브러리가 바로 이것 설명에서는 꿀 한 스푼과 클로..
[Clojure 연습] 5. 4Clojure Easy 1 문제 # 21 답 (fn [li idx] (last (take (+ idx 1) li)) ) 해설 배웠던 take 로 자르고 그중에 마지막 문제 # 22 count a Sequence 답 (fn [li] ((fn [l c] (if (empty? l) c (recur (rest l) (inc c)))) li 0)) ;; best answer #(reduce (fn [x y] (inc x)) 0 %) 해설 Best answer 미춋네.. Reduce 에서 Fn Var Seq 가 가능 Var를 넣어주면 첫번째 인자는 이놈이 넘어가게 가능 문제 # 24 답 apply + 해설 너무 쉽고~ 문제 # 25 답 filter odd? 해설 문제 # 23 Reverse a Sequence 답 (fn [raw] (let ..
[Clojure] 좋은 사이트들 1. repl https://repl.it/languages/clojure클로저 뿐만 아니라 다른 repl도 많이 제공하는듯클로저 web repl중에서 가장 좋은듯하다 2. 문제 http://www.4clojure.com/빈칸 체우기 문제 3. dochttps://clojuredocs.org/클로저.org 사이트에서 api나 ref보는것보다 여기가 제일 좋은듯.설명도 좋고무엇보다 다른 사람들이 올린 예시를 참고가능 영어가 어려워도 대충 보고 파악 가능하다.
[Clojure 연습] 4. 4Clojure Elementary 2 문제 #20 penultimate element 답 (fn [para-list] (last (drop-last para-list))) 다른 누구의 답에는 comp를 사용하였는데 (comp second reverse ) Comp는 중요해보인다. 풀이 Comp compare 가 아니라 composition이다. 일종의 함수조합을 만들어냄 ((Comp f g) x) 라면 f(g(x)) 하는 함수 가 되는듯 문제 #35 답 7 풀이 문제 #36 답 [x 7 y 3 z 1] 풀이 문제 #37 답 "ABC" 풀이 문제 # 57 답 [5 4 3 2 1] 풀이 문제 #71 Rearranging code -> 답 last 풀이 ->연산자는 진행순서를 고대로 나타내게 할수있음. -> 연산자는 첫 x 및 form을 계속하여..
[Clojure 연습] 3. 4Clojure Elementary 클로저에 관한 빈칸 채우기 문제 사이트 4Clojure 차근 차근 풀어봐야겠다 ㅜ 문제 # 4 답 :a :b :c 문제 # 6 vector 답 :a :b :c 해설 why: = 연사자는 뒤의 파라미터들이 모두 같은지 판단한다, 또한 list 와 vector는 같은 요소라면 같다고판별 문제 # 8 set 답 #{:a :b :c :d} 문제 # 10 답 20 해설 (맵 key) 혹은 (key 맵) 은 해당 value 문제 #12 답 3 문제 #14 function 답 8 해설 #(함수) 에서 %는 처음 파라미터를 의미함 2개이상이면 %1 %2 .. Partial 은 모르것다. 문제 #16 hello world 답 #(str "Hello, " % "!") 문제 # 18 filter function 답 '(6 ..
[Clojure 연습] 2. 기초 연습문제 (ns hello.core) (def user-data {"id" 10, "name" "jack", "age" 0, "role" :developer}) (def users [user-data (assoc user-data "role" :tester "age" 20) (assoc user-data "age" 10)]) ; 재귀(defn sum-developer-age [init-user] ((fn [v sum] (if (empty? v) sum (recur (rest v) (+ sum (get (first v) "age"))))) init-user 0)) ;시퀀스 함수(defn sum-developer-age-sq [init-user] (reduce + (map (fn [i] (get i "age")) i..