(def a [1 2 3]) a ;=[1 2 3]a 라는 이름에 [1 2 3]이라는 값이 매겨졌다. (보통 다른 언어에서는 변수(variable)에 값을 할당한다.(assign)이라고 말하는 언어도 있다.) 그렇게다면 값을 여러개 할당하여 해당 조건 마다 다른 값이 할당되는(또는 매겨지는) 것이 클로저에서도 가능할까?
자바
String a = "a" String result = null; if("a".equals(a)) result = "참참참!!"; else result = "거짓거짓";만약 클로저로 비슷한 것을 만든 다면?
(def a "a") (def result nil) (if (= a "a") (def result "참참참!!") (def result "거짓거짓"))
def만 몇개인가. 그것보다 이게 조금만 복잡해져도... clojure... 이것밖에 안되는 언어인가?!!
걱정하지 말자.
(defn res [a] (if (= a "a") "참참참" "거짓거짓")) (res "a") ;=>"참참참"
아주 깔끔하다.
댓글 없음:
댓글 쓰기