2012-07-13 11 views
5

内のレコードのフィールドを再定義することはと述べている: が動的にあなたのClojureの喜びでClojureの

をするJavaのコンパイル済みのパフォーマンスを与えて異なるフィールドを持つことが必要であれば、あなたも、レコードを再定義することができます

誰かが私にこのことがどうやって手がかりを与えることができますか?私たちはTreeNode記録とTreeNodeタイプの両方にFIXOプロトコルおよび機能拡張の定義を歩く9章で

おかげ

+0

どの章/ページ? – Kevin

+0

@Kevin Page 191 - http://www.manning.com/fogus/Sample-Ch9.pdf :) –

+0

レコードの再定義はどのように行われますか? – Ankur

答えて

6

FIXOの実装構築は動的に行うことができます。実際には、TreeNodeレコードから始まり、FIXOプロトコルを拡張し、TreeNodeタイプを定義し、FIXOを代わりに拡張します。フィールドの数は変更しませんが、タイプ自体を変更して一度拡張すると、FIXOプロトコルによるすべての呼び出しが新しいタイプに解決されます(FIXOの拡張子をnilに再定義する必要がありました。 NodeTypeをベース。

あなたはおそらくあなたが展開するコードでこれをしないと思いますが、試したとき、それは有用な技術です。FIXOセクションを歩くと、あなたが行くようなタイプをチェックしてみてください。