私は古いLispプログラムをハッキングしています。これは、Franz LISPでコンパイルされて動作した後、主張されています。しかし、Franz LISPは古すぎるので、CLISPコンパイラを試しています。ただし、CLISPにはがありませんputprop
。
と同じことをする関数を書くことができるとputprop
思いますが、さらに翻訳を実行する必要がある場合は、Lispのどのバージョンがありputprop
ますか?
私は古いLispプログラムをハッキングしています。これは、Franz LISPでコンパイルされて動作した後、主張されています。しかし、Franz LISPは古すぎるので、CLISPコンパイラを試しています。ただし、CLISPにはがありませんputprop
。
と同じことをする関数を書くことができるとputprop
思いますが、さらに翻訳を実行する必要がある場合は、Lispのどのバージョンがありputprop
ますか?
MACLISPはそれを持っていました。Franz LispはMACLISPに似ていると報告されているため 、MACLISP /ZetalispからCommonLispへzerop
の変換に関するKentPitmanのメモが、作業中のコードを最新のCommonLisp実装で実行するのに役立つ可能性はありません。
幸運を!
同等の機能は、SETFとGETの組み合わせによってCommonLispで提供されます。
CL-USER 1 > (setf (get 'foo :bar) :baz)
:BAZ
CL-USER 2 > (get 'foo :bar)
:BAZ
ポータブル標準Lispにも、Interlispと同様にそれがあります。Common Lispがそうしない理由は、おそらく、SETF
データ構造を破壊的に変更するので、バージポールで触れてはいけない実行可能なもののためです。ただし、おそらくputprop
他のレガシーLispでも破壊的な変更によって機能するため、実装putprop
する場合は次のようにすることができます。
(defmacro putprop (var prop val)
`(setf (get ,var ,prop) ,val))
私が覚えているように、Schemeはputpropを持っています。しかし、あなたはそれをLISPと呼んでいますか?