repl> (-> root zip/down zip/right)
[{:answer-keys [5 6], :id 3} {:l [{:id 2, :answer-keys []}], :pnodes [{:answer-keys [2 3 4], :id 1}], :ppath nil, :r ({:answer-keys [7], :id 4})}]
repl에 지퍼를 인쇄 할 때이 데이터가 표시됩니다. 나는 이것이 내가 지퍼를 직렬화 할 필요가있는 모든 데이터일지도 모른다라고 생각하고있다? 제공된 데이터에서 지퍼를 직렬화 해제 할 수 있습니까?지퍼를 직렬화 하시겠습니까?
아래에서 상상 한 zip/serialize 및 zip/deserialize 기능을 찾고 있습니다.
(def s (zip/serialize (-> root zip/down zip/right))) ;; s is a string
(def d (zip/deserialize s)) ;; d is a zipper location
;;And I can go on using the deserialized zipper d without any difficulty.
누구에게 어떻게 해야할지 알고 있나요?
여기에 영구 데이터 구조에 대한 찬사를 부르는 것이 유감 스러운데 ... –
우와, 매우 멋지다. 그리고 저는 그것이 길을 막을 때까지 클로저를 만드는 것이라고 생각했습니다. 하하. 그런데 print-str이 표현식을 직렬화하는 이유는 무엇입니까? read-string은 문자열의 첫 번째 항목 만 deserialize합니까? 그것들은 완벽하게 "매치"하지 않는 것이 조금 이상해 보입니다. –
예, 이상합니다. 'load-file'은 파일의 마지막 형식만을 반환합니다 ... –