Схема, эквивалентная предложению Haskell where

Я только изучаю схему, но мне бы хотелось иметь возможность меньше повторяться.

Есть ли способ присвоить имя подвыражению в локальной области видимости?

Согласно комментарию:

Haskell, где предложение

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

х должно быть 200 в этом случае.


person solinent    schedule 20.09.2009    source источник


Ответы (1)


Let (или letrec для рекурсивных привязок), например:

(define (f g) 
  (let ((x 1) (y (* g 2))) 
       (+ x y)))
person Logan Capaldo    schedule 20.09.2009
comment
Спасибо, но к сожалению в начальном языковом подмножестве drscheme нет let. Тем не менее, очевидно, правильный ответ. - person solinent; 20.09.2009
comment
Если вы знаете Haskell, вам, вероятно, лучше не использовать начальное языковое подмножество Drscheme. Вся схема уже небольшая, намного меньше, чем Haskell. - person Nathan Shively-Sanders; 21.09.2009