programming clojure functions - andstudy/forge GitHub Wiki
reference ์ฉ์ผ๋ก ์ ๋ฆฌํฉ๋๋ค. ํจ์ syntax ์ ๊ฐ๋จํ ์๋ง ์ ๋ฆฌํด ์ฃผ์ธ์. ๊ทธ๋ฌ๊ณ ๋ณด๋ ์๋ ๋งํฌ์๋ ์ ์ ๋ฆฌ๋์ด ์๊ธด ํ๊ตฐ์ ใ ใ
- clojure ํํ์ด์ง - API for clojure.core (master branch)
- clojure ํํ์ด์ง - API for math (master branch) by Mark Engelberg
- clojure ํํ์ด์ง - clojure_contrib
- clojure ํํ์ด์ง - Java Interop
- boolean : true, false p.36
- character : \a p.34
- keyword : :tag, :doc p.37
- list : (1 2 3), (println "foo")
- map : {:name "Bill", :age 42}
- nil : nil
- number : 1, 4.2
- set : #{:snap, :crackle, :pop}
- string : "hello"
- symbol : user/foo, java.lang.String p.33
- vector : [1 2 3]
- ์ต๋ช ํจ์ : #(.toUpperCase %)
- ์ฃผ์ : ; ํ ์ค ์ฃผ์
- deref : @form --> (deref form)
- meta : ^form --> (meta form)
- ๋ฉํ๋ฐ์ดํฐ : #^metadata form
- ์ธ์ฉ : 'form --> (quote form)
- '(1 2) ๋ (quote (1 2)) ์ ๋์ผ
- ์ ๊ท์ ํจํด : #"foo" --> a java.util.regex.Pattern
- ๊ตฌ๋ฌธ ๋ฐ์ดํ : 'x
- ํ๊ฐ ๊ธฐํธ : ~
- ์ด์ ํ๊ฐ ๊ธฐํธ : ~@
- var-quote : #'x --> (var x)
- #(body) : p.45 ์ต๋ช ํจ์
- (and & expres) : p.236
- (and 1 0 nil false)
- (apply f args* argseq) : p.35
- (apply str (interleave "Attack" "The purple"))
- (cond & clauses) : p.7
- (cond ((< x 10) "less") ((> x 10) "more"))
- (conj coll element & elements) : p.16, 110
- (conj #{} "Stu")
- (cons elem aseq) : p.107
- (count coll)
- (dec x)
- (def symbol initial-value?) : p.16
- (def visitors (ref #{}))
- (defn name doc-string? attr-map? [params*] body) : p.14, 42 ํจ์ ์ ์ธ
- (defn greeting "help" [username] (str "Hello, " username))
- (defn greeting "help" ([] (greeing "world")) ([username] (str "Hello, " username)))
- (defstruct name & keys) p.39
- (defstruct book :title :author) -> ์ธ์คํด์ค๋ struct ๋ก ๋ง๋ ๋ค.
- (doc name) : p.21
- (doc str)
- (false? expr) : p.37
- (filter pred coll) : p.115
- (take 10 (filter even? (whole-numbers)))
- (reduce + (filter even? (take-while #(>= 4000000 %) (fibo))))
- (first aseq) : p.106
- (fn [params*] body) : p.45
- (filter (fn [w] (> (count w) 2)) (re-split #"W+" "A fine day"))
- (for [binding-form coll-expr filter-expre? ...] expr) : p.120
- (for [file "ABCDEFG" rank (range 1 9)] (format "%c%d" file rank))
- (format fmt & args)
- (inc x)
- (into to-coll from-coll) : p.110
- (into [1 2 3] [:a :b :c]) -> [1 2 3 :a :b :c]
- if : p.55
- (defn is-small? [number] (if (< number 100) "yes" "no"))
- (iterate f x) : p.113
- (take 10 (iterate inc 1))
- (take 10 (iterate (fn [x] (* 2 x)) 2))
- (let [bindings*] expres*) : p.48
- (defn square-corners [bottom left size] (let [top (+ bottom size) right (+ left size)] bottom left] [top left] [top right] [bottom right))
- (loop [bindings ] expres) : p.56
- (loop [result [] x 5] (if (zero? x) result (recur (conj result x) (dec x))))
- (map f coll) : p.118
- (map #(format "
%s
" %) ["the" "quick" "brown" "fox"]) - (map (fn[x] (* x x)) (take 10 (iterate inc 1)))
- (map #(format "
- (next aseq) : p.107 (seq (rest aseq)) ์ ๊ฐ๋ค.
- (nil? expr) : p.37
- (or & exprs) : p.236
- (or 1 0 nil false)
- (defn pred1[n] (or (= (rem n 3) 0) (= (rem n 5) 0)))
- (quot 22 7) -> 3 p.32 : ๋ชซ ๊ตฌํ๊ธฐ
- (range start? end step?) : p.112
- (range 10 20)
- (recur exprs) : p.32 loop ๋์ ํจ์๋ฅผ ๋ฐ๋ณต์ํฌ ์๋ ์๋ค.
- (defn countdown [result x] (if (zero? x) result (recur (conj result x) (dec x))))
- (reduce f coll) : p.119
- (reduce + (range 1 11))
- (reduce + (filter even? (take-while #(>= 4000000 %) (fibo))))
- (rem 22 7) -> 1 p.32 : ๋๋จธ์ง ๊ตฌํ๊ธฐ
- (repeat n x) p.113
- (repeat 5 1)
- (rest aseq) : p.106
- (seq coll) : p.107
- (sort comp? coll) : p.119
- (sort [42 1 7 11])
- (sort > [42 1 7 11)
- (sort-by a-fn comp? coll) : p.119
- (sort-by #(.toString %) [42 1 7 11])
- (str & args) : p.34
- (str 1 2 nil 3)
- (struct name & vals)
- (def b (struct book "Anathem" "Neal Stephenson")) ์ ์ธ์ defstruct ๋ก ํ๋ค. p.39
- (take n sequence) : p.113
- (take 10 (iterate inc 1))
- (take-while pred coll) : p.116
- (take-while (complement #{\a\e\i\o\u}) "the-quick-brown-fox")
- (true? expr) : p.37
- (zero? expr) : p.37