이시퀀스를 필터링하고 평가 된 pred 값을 유지하는 방법은 무엇입니까?
한다고 가정 하나는 서열을 필터링하는 자체 정의 self-pred
기능을 사용하고 싶습니다 내가 여러 번 발생, 아직에 대한 관용적 인 접근 방법을 찾지 못했습니다 시나리오는 ...입니다. 이 self-pred
함수는 원하지 않는 요소에 대해 nil
을 반환하고 원하는 요소에 유용한 정보를 반환합니다. 이러한 원하는 요소에 대한 값은 self-pred
으로 유지하는 것이 바람직합니다.
내 일반적인 솔루션은 다음과 같습니다
;; self-pred is a pred function which returns valuable info
;; in general, they are unique and can be used as key
(let [new-seq (filter self-pred aseq)]
(zipmap (map self-pred new-seq) new-seq))
기본적으로, 모든 요소를 원 두 번 self-pred
를 호출하는 것입니다. 나는 그것이 매우 못생긴다고 느낀다 ...
더 좋은 방법이 있는지 궁금하다. 모든 입력에 대해 많은 것을 알고 있습니다!
여기에 대해 조금 설명하고 질문에서 코드를 대체하는 방법을 설명해 주시겠습니까? – biagidp