1

私は古いLispプログラムをハッキングしています。これは、Franz LISPでコンパイルされて動作した後、主張されています。しかし、Franz LISPは古すぎるので、CLISPコンパイラを試しています。ただし、CLISPにはがありませんputprop

と同じことをする関数を書くことができるとputprop思いますが、さらに翻訳を実行する必要がある場合は、Lispのどのバージョンがありputpropますか?

4

4 に答える 4

4

MACLISPはそれを持っていました。Franz LispはMACLISPに似ていると報告されているため 、MACLISP /ZetalispからCommonLispへzeropの変換に関するKentPitmanのメモが、作業中のコードを最新のCommonLisp実装で実行するのに役立つ可能性はありません。

幸運を!

于 2011-03-25T11:47:29.200 に答える
3

同等の機能は、SETFとGETの組み合わせによってCommonLispで提供されます。

CL-USER 1 > (setf (get 'foo :bar) :baz)
:BAZ

CL-USER 2 > (get 'foo :bar)
:BAZ
于 2011-03-25T11:03:10.627 に答える
0

ポータブル標準Lispにも、Interlispと同様にそれがあります。Common Lispがそうしない理由は、おそらく、SETFデータ構造を破壊的に変更するので、バージポールで触れてはいけない実行可能なもののためです。ただし、おそらくputprop他のレガシーLispでも破壊的な変更によって機能するため、実装putpropする場合は次のようにすることができます。

(defmacro putprop (var prop val)
  `(setf (get ,var ,prop) ,val)) 
于 2019-05-10T19:18:18.817 に答える
-1

私が覚えているように、Schemeはputpropを持っています。しかし、あなたはそれをLISPと呼んでいますか?


ACL2(http://en.wikipedia.org/wiki/ACL2)にもputpropがあり、CommonLisp上に構築されています。

于 2011-03-25T04:15:36.780 に答える