2009-07-25 3 views
4

나는 clojure에리스트를 가지고있다. (기본 자바 라이브러리로 인해) 반복자의 remove 메소드를 사용하여리스트를 수정해야한다. 클로저에서 (map fn seq)의 파괴적인 동등 물을 작성하는 것보다이 효과를 얻는 더 우아한 방법이 있습니까?바꿀 수있는 부분들

+0

? 그들은 기본 Java 목록이어야합니까? 그들은 얼마나 자주 돌연변이 하는가? –

답변

4

Clojure 목록은 변경할 수 없으므로 변경 가능한 목록이 필요하면 Java가 제공하는 목록을 사용할 수 있습니다. 예를 들어

: 당신이이 목록을 사용하여 무엇

user=> (import java.util.LinkedList)     
java.util.LinkedList 
user=> (def a (list 3 6 1 3))   
#'user/a 
user=> (def b (java.util.LinkedList. a)) 
#'user/b 
user=> b 
#<LinkedList [3, 6, 1, 3]> 
user=> (.remove b 6) 
true 
user=> b 
#<LinkedList [3, 1, 3]>