> (define x 2) > x 2 > (define x 3) > x 3 > (set! x 4) > x 4 > ((n+ 2) 3) 5 > ((n+ 2) 3) 6 > ((n+ 2) 3) 6 > ((n+ 2) 3) 6 > (define 2+ (n+ 2)) > (2+ 2) 5 > (2+ 2) 6 > (2+ 2) 7 > (define 2+ (n+ 2)) > (2+ 2) [image] [image] n: undefined; cannot use before initialization > (define p (cons 2 3)) > p (2 . 3) > (set-car! p 20) > p (20 . 3) > (set-cdr! p 30) > p (20 . 30) > > (define 2+ (n+ 2)) > (n+ 2) # > (define 2+ (n+ 2)) > (2+ 2) n = 3 5 > (2+ 2) n = 4 6 > (2+ 2) n = 5 7 > (2+ 2) n = 6 8 > (2+ 2) n = 7 9 > (set! xxx 22) [image] [image] set!: assignment disallowed; cannot set variable before its definition variable: xxx > (sum 5) 5 > (sum 10) 15 > (sum 10) 25 > (define acct (make-account 100)) > (acct 50) 150 > (acct 30) 180 > (acct -110) 70 > (acct -110) Insufficient funds! > (acct -110) Insufficient funds! > (acct 20) 90 > (define p '(7 5 3)) > (set-cdr! (cdr p) p) > p #0=(7 5 . #0#) > (length p) [image] [image] user break