2011-12-26 4 views
1

Я подготовил несколько строк на Схеме, и я новичок в Scheme. Пожалуйста, оставьте свои комментарии о моем коде ниже:counter in if statement

(define new3 
    (lambda(y) 
(define points 444) 
(define add3 (lambda (x)(+ x 3))) 
    (display "--") 
    (display points) 

(if (and (= 1 1)(= 2 2))(add3 points)) 

    (display "--") 
    (display points) 

    (list points points) 
)) 


(new3 7) 

OUTPUT

--444--444(444 444) 

Интересно, почему "точки" после "если" не равно "447"?

спасибо.

ответ

1

Это потому, что вы не обновили points на месте. Вы вычислили 477 с (add3 points), но без сохранения этого результата в любом месте.

+0

Просьба предложить, как я могу сохранить результат = очки + 3. В каком месте? Под "if"? Большое спасибо. –

+0

Вы можете заменить бесполезные 'if' на' (setq points (add3 points)) '. –

+0

Большое спасибо! Однако мне нужно «if», так как у меня есть условие для проверки (не только (= 1 1)). Другими словами, я хочу проверить условие, и если он содержит точки изменения. –