3

文字を数学演算子に関連付ける方法はありますか?

たとえば、文字「b」を足し算として関連付けることができれば、

(b 2 2)

出力

4

これは可能ですか?もしそうなら、ガイドとして使用できる資料や例はありますか?

4

2 に答える 2

8

それはかなり単純です、見てください:

(define b +)
(b 2 2)
> 4

Nowbは のエイリアスです+。同じ考え方を使用して、必要なプロシージャのエイリアスを任意の名前で作成できます (1 文字の名前に限定されません)。他の特殊なフォームでは機能しないことに注意してください。たとえば、これはエラーを生成します。

(define my-and and)
于 2012-05-15T03:40:42.823 に答える
6

文言は少しずれています (これは親しみやすいメモとして受け取ってください)。

Scheme/Racket では、数学関数 +、-、* などは、多くのプログラミング言語と同様にキーワードではありません。それらは単なる名前です。

式 + は値、つまり数値を加算できる関数に評価されます。値に独自の名前を導入するには、 を使用できますdefine

(define plus +) 

plus+ を評価した結果の値に名前を付けます。したがって、次のように、独自の 1 文字の名前を付けることができます。

(define p +)

ただし、一文字の名前は文字ではありません。文字は文字列を構成するものです。

于 2012-05-15T09:11:03.823 に答える