2011-12-26 7 views
1

私はSchemeでいくつかの行を用意しましたが、私はSchemeを初めて使用しています。以下の私のコードについてのコメントを投稿してください。ifステートメントのカウンタ

(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をインプレースで更新しなかったためです。 を(add3 points)と計算しましたが、その結果はどこにも保存されませんでした。

+0

結果ポイント=ポイント+ 3をどのように保存することをお勧めしますか? "if"の下で? 多くのありがとうございます。 –

+0

無駄な 'if'を'(setq points(add3 points)) 'で置き換えることができます。 –

+0

ありがとうございます!しかし、私は検証されるべき条件を持っているので(「=」だけでなく)「if」というものが必要です。言い換えれば、私は条件をチェックしたい、そしてそれが修正ポイントを保持している場合。 –