タグ

ブックマーク / reinyannyan.hatenadiary.org (1)

  • Zipper - 関数的 (非破壊的) なデータ構造の更新 - (new Hatena).blog()

    PLT Scheme の新しいバージョンからリストが immutable になる (set-car! とか append! とかが使えなくなる) ことは随分前にアナウンスされていて知ってはいたんですが、何の対策もしないままリリースを迎えてしまいました (バージョン 4 のアナウンスメント)。 個人的には、連想リストをよく使うので key, value ペアの value を変更するのに set-cdr! は必須だったんです。 とは言え、開発陣の長年の経験から「コンスに対するミューテーションは悪」というテーゼが導かれたわけで、ユーザーとしては大人しく従わなければなりません。 もちろんいくつか対処方法があっての事です。例えば box というコンテナを value の位置に置き、その中にデータを置いて再設定 (set-box!) する、という方法が有力な代替案です。 ただ、box は何となく面倒

    Zipper - 関数的 (非破壊的) なデータ構造の更新 - (new Hatena).blog()
    warufuzaketaichi
    warufuzaketaichi 2010/08/19
    関数型言語におけるTree構造的なアレ
  • 1