나는 clojure에 다소 익숙하며 술어 사용법이 확실치 않습니다. 예를 들어, 술어를 만족하는 목록의 요소를 리턴하는 함수를 작성하려면 어떻게해야합니까? 클로저에 술어를 사용하려면 어떻게해야합니까?
>(filter-in number? '(a 2 (1 3) b 7))
(2 7)
>filter in symbol? '(a (b c) 17 foo))
(a foo)
나는이 시도했지만 작동하지 않습니다
(defn filter-in [pred lst]
(fn [x]
(if (empty? lst)
()
(if (pred (first lst))
(cons (first lst) (filter-in pred (rest lst)))
(filter-in pred (rest lst))))))
사전에 감사합니다.
'(필터 번호? '(a 2 (1 3) b 7))'을 (를) 사용하셨습니까? –
아니요, 함수의 이름은 필터 인입니다. –
@ChrisPhillips는 열린 괄호가없는 두 번째 사용 예이며 함수 이름에'-'가 있습니까? – noisesmith