여기 Clojure 초보자를 완료하십시오. 이것은 간단한 질문이지만 이해할 수없는 것 같습니다.
알 수없는 깊이의 중첩 된 hasmap이있는 경우 Spectre의 transform ()을 사용하여 데이터 구조의 값을 변경하려면 어떻게해야합니까? 여기에 재귀 경로가 필요하다고 생각하지만 작동하지 않습니다. 작업 예제는 내가 쫓는 것이고 불행히도 문서에는 없습니다.
( 재귀 맵에 set-val에 대한 예제 가 있지만 변환 사용 사례로 변환하는 방법을 모르겠습니다)
편집 : 더 많은 세부 정보가 요청되었으므로 여기에 있습니다 : 중첩 된 맵의 모든 값을 변경할 수있는 변환 양식에 관심이 있습니다. 예를 들어이 변환은 다음 맵 (및 기타 중첩 맵)의 모든 값을 증가시킬 수 있습니다.
{:a 1 :b {:c 2 :d {:e 3}}}
AND
{:a 1 :b {:c 2}}
AND
{:a 1}
내가 관심있는 코드 줄은 다음과 같이 보일 수 있습니다.
(transform <missing selector here> inc data)
은 Using 연결 예 :
(def MAP-NODES (recursive-path [] p (if-path map? (continue-then-stay MAP-VALS p))))
(transform [MAP-NODES MAP-VALS number?] inc data)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다