функция add1 из схемы в R5RS

Я написал некоторый код, но он не работает, потому что функция add1, которую я использовал в схеме, не работает с R5RS. Чем можно заменить add1 в R5RS?


person Sahil Gadimbayli    schedule 08.11.2012    source источник
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
comment
Или вы можете просто использовать (+ 1 x) и сэкономить одно нажатие клавиши. - person JasonFruit; 08.11.2012

поздний ответ, но альтернатива (с использованием лямбда-выражений)..

(define add1 
    (lambda (x)
        (+ x 1)))
person iKlsR    schedule 04.03.2013
comment
Я не могу представить какую-либо реализацию Схемы, в которой две формы обрабатывались бы по-разному, предполагая, что мы говорим о реализации реализации по умолчанию define. Таким образом, ваш ответ в точности эквивалентен ответу Оскара, так что это не альтернатива как таковая. - person Chris Jester-Young; 19.06.2015
comment
@ChrisJester-Young Я имел в виду альтернативный способ написания. Возможно, бесполезный, но кто не хочет хвастаться своими новообретенными навыками Схемы. - person iKlsR; 19.06.2015
comment
Вот вам хвастливый ответ (он макрорасширяется точно так же, но выглядит круче; требуется SRFI 26): (define add1 (cut + <> 1)) :-D - person Chris Jester-Young; 19.06.2015