2009-09-20 43 views
4

我只是在學習計劃,但我希望能夠少重複自己。相當於Haskell的方案,其中條款

有沒有一種方法可以爲本地範圍內的子表達式分配一個名稱?

按照註釋:

Haskell的where子句

x = s * t 
    where s = 10 
     t = 20 

X應該是在這種情況下200。

回答

9

設(或letrec遞歸綁定),例如:

(define (f g) 
    (let ((x 1) (y (* g 2))) 
     (+ x y))) 
+0

謝謝,但遺憾的是在drscheme的「開頭語」子集沒有'let'。不過,顯然是正確的答案。 – solinent 2009-09-20 19:35:25

+11

如果您瞭解Haskell,那麼您最好不要使用Drscheme的「開始語言」子集。整個方案已經很小,比Haskell小得多。 – 2009-09-20 22:08:26