有没有办法将字符与数学运算符相关联?
例如,如果我可以将字母“b”关联为加法,那么
(b 2 2)
输出
4
这可能吗?如果是这样,我可以使用任何材料或示例作为指南吗?
这很简单,看:
(define b +)
(b 2 2)
> 4
现在b
是+
. 您可以使用相同的想法为您想要的任何过程创建别名,使用任何名称(不限于单字符名称)。请注意,它不适用于其他特殊形式;例如这将产生一个错误:
(define my-and and)
措辞有点偏离(把它当作一个友好的说明)。
在 Scheme/Racket 中,数学函数 +、-、* 等不是关键字,因为它们在许多编程语言中都是如此。它们只是名称。
表达式 + 计算为一个值,即可以添加数字的函数。为了引入您自己的值名称,您可以使用define
.
(define plus +)
plus
为计算 + 产生的值命名。因此,您可以给出自己的单字母名称,例如
(define p +)
但是,单字母名称不是字符。字符是字符串的组成部分。