| |
language:clojure [2018/07/12 14:52] – [loop & recur] factorial 수정 ledyx | language:clojure [2021/02/07 03:15] (current) – external edit 127.0.0.1 |
---|
https://clojure.org/guides/learn/syntax | https://clojure.org/guides/learn/syntax |
| |
{{tag>Language Clojure JVM}} | {{tag> clojure functional_programming jvm language }} |
| |
| |
</sxh> | </sxh> |
| |
<sxh ; title:나머지 변수 이용. 이해하지 못하는 코드> | <sxh ; title:Collecton의 인자 Binding> |
(def my-vector ["A" "B" "C" "D"]) | (def my-vector ["A" "B" "C" "D"]) |
| |
=> 24 | => 24 |
</sxh> | </sxh> |
| |
| |
| ==== 함께 구현되는 Interface ==== |
| |
| 참고로 익명 함수에는 4개의 Java Interface가 Implement 된다. |
| |
| * java.util.concurrent.Callable |
| * java.lang.Runnbale |
| * java.io.Serializable |
| * java.util.Comparator |
| |
| |
| https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/AFunction.java |
| https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/IFn.java |
| |
| |
| |
==== Returing Functions ==== | ==== Returing Functions ==== |
* Clojures : 함수 범위 안에 속하는 모든 변수에 접근할 수 있는 영역 | * Closures : 함수 범위 안에 속하는 모든 변수에 접근할 수 있는 영역 |
| |
<sxh> | <sxh> |
| |
* <nowiki>(-> x forms)</nowiki> | * <nowiki>(-> x forms)</nowiki> |
* forms에 x를 연쇄적으로 두 번째 아이템으로써 뒤에 삽입. | * forms에 x를 연쇄적으로 맨 처음 아이템으로써 뒤에 삽입. |
* 함수를 여러번 중첩하는 경우 유용. | * 함수를 여러번 중첩하는 경우 유용. |
| |
| |
* <nowiki>(->> x forms)</nowiki> | * <nowiki>(->> x forms)</nowiki> |
* forms에 x를 연쇄적으로 첫 번째 아이템으로써 앞에 삽입. | * forms에 x를 연쇄적으로 맨 마지막 아이템으로써 앞에 삽입. |
* Collections를 마지막 argument로 받는 함수들에 유용 | * Collections를 마지막 argument로 받는 함수들에 유용 |
| |