2012-05-15 4 views
3

Есть ли способ связать символ с математическим оператором?ассоциация символов с математическими операторами

, например, если я могу связать букву "б", как дополнение, то

(b 2 2)

Выход

4

Возможно ли это? Если есть какие-либо материалы или примеры, которые я могу использовать в качестве руководства?

ответ

8

Это довольно просто, посмотрите:

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

Теперь b является псевдонимом для +. Вы можете использовать ту же идею для создания псевдонимов для любой процедуры, которую вы хотите, с любым именем (это не только односимвольные имена). Имейте в виду, что это не сработает для других специальных форм; например, это приведет к возникновению ошибки:

(define my-and and) 
+0

прохладный. Большое спасибо! – Razed

+2

@ Митч, пожалуйста! Если этот ответ был полезен для вас, пожалуйста, не забудьте принять его как правильно, нажав на галочку слева. –

+0

Просто для того, чтобы пинговать оригинального вопросника: когда вы получаете шанс, примите ответ Оскара. Это помогает сделать базу данных стека более полезной для других. – dyoo

6

Формулировка немного неформальная (возьмите это как дружеское примечание).

В схеме/ракетке математические функции +, -, * и т. Д. Не являются ключевыми словами, как на многих языках программирования. Это просто имена.

Выражение + оценивает значение, а именно функцию, которая может добавлять числа. Чтобы ввести свои собственные имена для значений, вы можете использовать define.

(define plus +) 

дает имя plus к значению, полученному от оценки +. Таким образом, вы можете дать свои собственные названия одной буквы, как

(define p +) 

Однако названия одной буквы не являются символами. Символы - это то, из чего состоит строка.

Смежные вопросы