Я написал некоторый код, но он не работает, потому что функция add1
, которую я использовал в схеме, не работает с R5RS. Чем можно заменить add1
в R5RS?
функция add1 из схемы в R5RS
comment
R5RS является схемой. S для схемы. Вы имеете в виду add1 от Racket?
- person Joshua Taylor   schedule 19.06.2015
Ответы (2)
Процедура add1
очень проста, вы можете реализовать ее сами:
(define (add1 x)
(+ x 1))
person
Óscar López
schedule
08.11.2012
Или вы можете просто использовать
(+ 1 x)
и сэкономить одно нажатие клавиши.
- person JasonFruit; 08.11.2012
поздний ответ, но альтернатива (с использованием лямбда-выражений)..
(define add1
(lambda (x)
(+ x 1)))
person
iKlsR
schedule
04.03.2013
Я не могу представить какую-либо реализацию Схемы, в которой две формы обрабатывались бы по-разному, предполагая, что мы говорим о реализации реализации по умолчанию
define
. Таким образом, ваш ответ в точности эквивалентен ответу Оскара, так что это не альтернатива как таковая.
- person Chris Jester-Young; 19.06.2015
@ChrisJester-Young Я имел в виду альтернативный способ написания. Возможно, бесполезный, но кто не хочет хвастаться своими новообретенными навыками Схемы.
- person iKlsR; 19.06.2015
Вот вам хвастливый ответ (он макрорасширяется точно так же, но выглядит круче; требуется SRFI 26):
(define add1 (cut + <> 1))
:-D
- person Chris Jester-Young; 19.06.2015