Scheme 数学运算符的字符关联

Scheme 数学运算符的字符关联,scheme,operators,character,racket,Scheme,Operators,Character,Racket,有没有办法将字符与数学运算符关联 例如,如果我可以将字母“b”关联为加法,那么 (b 2) 输出 四, 这可能吗?如果有的话,有什么材料或例子可以作为指导吗?很简单,请看: (define b +) (b 2 2) > 4 现在b是+的别名。您可以使用相同的思想为任何过程创建别名,使用任何名称(不限于单字符名称)。请注意,它不适用于其他特殊形式;例如,这将产生一个错误: (define my-and and) 措辞有点离谱(把这当作友好的注释) 在Scheme/Racket中,数学函数

有没有办法将字符与数学运算符关联

例如,如果我可以将字母“b”关联为加法,那么

(b 2)

输出

四,


这可能吗?如果有的话,有什么材料或例子可以作为指导吗?

很简单,请看:

(define b +)
(b 2 2)
> 4
现在
b
+
的别名。您可以使用相同的思想为任何过程创建别名,使用任何名称(不限于单字符名称)。请注意,它不适用于其他特殊形式;例如,这将产生一个错误:

(define my-and and)

措辞有点离谱(把这当作友好的注释)

在Scheme/Racket中,数学函数+、-、*等不是关键字,因为它们在许多编程语言中都是关键字。它们只是名字

表达式+的计算结果为一个值,即可以添加数字的函数。 为了引入自己的值名称,可以使用
定义

(define plus +) 
将名称
加上
指定给计算+。 因此,您可以给出自己的单字母名称,如

(define p +)

但是,单字母名称不是字符。字符是字符串的组成部分。

@Mitch不客气!如果这个答案对你有帮助,请别忘了点击左边的复选标记,承认它是正确的。它有助于使堆栈溢出数据库对其他数据库更有用。