를 설정 내가 가진 무엇인가? 나는 테스트를 위해 술어를 사용할 수 있기를 원한다. 커먼 리스프에서 예를 들어 pushnew
가 : Clojure의 비슷한 일이벡터에 값을 추가하고 여기에
pushnew item place &key key test test-not
있습니까? 아마도 벡터 대신 집합을 사용해야합니다. 벌금. 세트가 값을 비교하는 데 사용할 술어를 어떻게 정의합니까? 예를 들어, set은 문자열을 포함 할 수 있으며, 대소 문자의 차이가 집합에 대한 연산에 영향을주지 않아야한다고 가정 할 때 Clojure가이를 어떻게 다루는가?
(defn push-new [v value]
(if (some #{value} v)
v
(conj v value)))
지금 당신은 쉽게 원자의 하나 개의 값까지 이동이 FN을 사용할 수 있습니다 : 당신이 원자 작동하지 않은 경우가있을 것입니다 수없는 경우
글쎄, 고마워, 나는 실제로 이것도 쓸 수있다, 나는 표준을 찾고 있었고, 이미 구현 된 솔루션을 사용하여 바퀴의 재발 명을 피했다. 어쨌든 감사합니다. – Mark
편집을 주목하십시오 - 실제로 이것은'sorted-set-by'가 (적어도 주문이 중요하지 않다면) 설계된 것입니다. – noisesmith
아니요, 순서는 중요하지 않습니다. 예제는 여기에서 단순화되었지만 실제로는 단어 사전과 같습니다. – Mark