If statement if语句中的计数器

If statement if语句中的计数器,if-statement,scheme,If Statement,Scheme,我在Scheme中准备了几行,我对Scheme还不熟悉。请在下面发表您对我的代码的评论: (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) (

我在Scheme中准备了几行,我对Scheme还不熟悉。请在下面发表您对我的代码的评论:

(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)

输出

--444--444(444 444)
我想知道为什么“如果”后面的“点”不等于“447”


谢谢。

这是因为您没有及时更新
积分。您使用
(添加3个点)
计算了
477
,但没有将结果存储在任何位置。

这是因为您没有就地更新
点。您使用
(add3点)
计算了
477
,但没有将结果存储在任何位置。

请建议如何存储结果点=点+3。在哪个地方?在“如果”下?非常感谢。如果
,您可以将无用的
替换为
(设置点(添加3点))
。非常感谢!然而,我需要“如果”的东西,因为我有一个条件要验证(不仅仅是(=1))。换句话说,我想检查一个条件,以及它是否包含修改点。@Debbie:然后简单地将
(添加3点)
替换为
(设置!点(添加3点))
。请建议如何存储结果点=点+3。在哪个地方?在“如果”下?非常感谢。如果
,您可以将无用的
替换为
(设置点(添加3点))
。非常感谢!然而,我需要“如果”的东西,因为我有一个条件要验证(不仅仅是(=1))。换句话说,我想检查一个条件,以及它是否包含修改点。@Debbie:然后简单地将
(添加3点)
替换为
(设置!点(添加3点))