文字を数学演算子に関連付ける方法はありますか?
たとえば、文字「b」を足し算として関連付けることができれば、
(b 2 2)
出力
4
これは可能ですか?もしそうなら、ガイドとして使用できる資料や例はありますか?
それはかなり単純です、見てください:
(define b +)
(b 2 2)
> 4
Nowb
は のエイリアスです+
。同じ考え方を使用して、必要なプロシージャのエイリアスを任意の名前で作成できます (1 文字の名前に限定されません)。他の特殊なフォームでは機能しないことに注意してください。たとえば、これはエラーを生成します。
(define my-and and)
文言は少しずれています (これは親しみやすいメモとして受け取ってください)。
Scheme/Racket では、数学関数 +、-、* などは、多くのプログラミング言語と同様にキーワードではありません。それらは単なる名前です。
式 + は値、つまり数値を加算できる関数に評価されます。値に独自の名前を導入するには、 を使用できますdefine
。
(define plus +)
plus
+ を評価した結果の値に名前を付けます。したがって、次のように、独自の 1 文字の名前を付けることができます。
(define p +)
ただし、一文字の名前は文字ではありません。文字は文字列を構成するものです。