3

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

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

(b 2 2)

输出

4

这可能吗?如果是这样,我可以使用任何材料或示例作为指南吗?

4

2 回答 2

8

这很简单,看:

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

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

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

措辞有点偏离(把它当作一个友好的说明)。

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

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

(define plus +) 

plus为计算 + 产生的值命名。因此,您可以给出自己的单字母名称,例如

(define p +)

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

于 2012-05-15T09:11:03.823 回答