0

式のエイリアスを定義する必要がある課題があります。ガイドの 1 つで、setf またはリストのリストを使用してそれらを定義するように指示されています。より具体的には、エイリアス ADD/SUCC/PRED/etc にラムダ計算値を割り当てる必要があります。例: ---> (ADD := (λ mnf x. nf (mfx))) <----.

これにより、特定の操作でそれらをエイリアスに置き換えた後、それらを操作できます。明確な説明が見つからず、setfの使用方法がわからないので、ヒントを教えていただければ本当に助かります。

これまでのところ、値を変更するために条件を使用しました。置換する必要がある単語と等しい記号がある場合は、それを行いますが、効率的ではないようです。

4

1 に答える 1

1

setfCommon Lisp マクロです。DrRacket から利用できるデフォルトの言語には存在しません。

あなたはおそらく、、、または、Scheme の子孫である Racket で動作することになっていることを本当に意味する場合set!.set-car!set-cdr!

Racket には、表面的な構文を文字通り実装できるレベルまで多くの抽象化レベルがあるため、Common Lisp を実装でき、もちろん使用できるはずですsetf:-)

于 2021-01-09T05:04:39.037 に答える