생성일: 2019년 11월 18일
수정일: 2023년 07월 16일

4clojure - Flipping out (46)

  1. 문제
  2. 문제풀이

문제

(= 3 ((__ nth) 2 [1 2 3 4 5]))

(= true ((__ >) 7 8))

(= 4 ((__ quot) 2 8))

(= [1 2 3] ((__ take) [1 2 3 4 5] 3))

문제풀이

(fn [f]
  (fn [x y]
    (f y x)))

함수 내부의 함수 정의를 하는 방법으로 문제를 해결 했다. 과정을 설명한다면 처음에 (fn [f])의 실행으로 (fn [x y]가 리턴되고 그 후에 x y값에 해당하는 결과를 (f y x)를 실행하므로써 해결을 한다.즉 이런 모양이다.

(((fn [f] (fn [x y] (f y x))) nth) 2 [1 2 3 4 5])

((fn [x y] (nth y x)) 2 [1 2 3 4 5])

처음과 같은 모양이 되었다가 함수가 실행되고 나서는 두번째와 같은 모양이 된다.

Tags: 4clojure Today I Learn