(define (reverse ls)
(if (null? ls)
ls
(append (reverse (cdr ls))(list (car ls)))))

とやると、リストがさかさまになるらしいのですが、動きは
どうなるのでしょう。
最初の引数が(1 2 3)として、
(append (reverse (cdr (1 2 3))(list (car (1 2 3))))
(append (reverse ((2 3))(list (1)))
(append (reverse ( (cdr (2 3)))) (list (car (2 3))))
(append (reverse (3))(list (2)))
となって、あれ?となります。けど実行するとさかさまになっている
なんかわからないです。だれか動き方を教えてください!