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は文字列の最初の項目を逆シリアル化するのはなぜですか?彼らは完璧に "マッチ"していないというのはちょっと奇妙なようです。 –
うん、それは奇妙だ。 'load-file'はファイル内の最後の形式だけを返します。 –