2012-11-08 30 views
2

我寫了一些代碼,但它不起作用,因爲我在Scheme中使用的add1函數不適用於R5RS。什麼可以取代R5RS中的add1add1函數從方案到R5RS

+0

R5RS **是**計劃。 S用於Scheme。你是說Racket的add1嗎? –

回答

6

過程add1是很簡單的,你可以自己實現它:

(define (add1 x) 
    (+ x 1)) 
+2

或者您可以使用'(+ 1 x)'並保存一個按鍵。 – JasonFruit

0

末的答案,但另一種是(利用lambda表達式) ..

(define add1 
    (lambda (x) 
     (+ x 1))) 
+0

假設我們正在談論實現的'define'的默認實現,我無法想象任何兩個表單都會被完全不同處理的Scheme實現。因此,你的答案與Óscar的答案完全相同,所以它不是本身的替代選擇。 –

+0

@ ChrisJester-Young我的意思是替代寫作方式。可以說毫無用處,但誰也不想炫耀他們新的計劃技能。 – iKlsR

+1

下面是你的一個showoff答案(它宏觀擴展到完全相同的東西,但看起來更酷;需要[SRFI 26](http://srfi.schemers.org/srfi-26/srfi-26.html)): '(定義add1(cut + <> 1))':-D –