次の関数で再帰がどのように機能するかを誰かに説明してもらえますか? 具体的には、関数がその基本ケースに到達したときに何が起こるかに興味があります。また、このコードで名前付き let が使用されているのはなぜですか? (私は名前付き let に慣れていません)
(define (unzip list-of-pairs)
(if (null? list-of-pairs)
(cons '() '())
(let ((unzipped (unzip (cdr list-of-pairs))))
(cons (cons (car (car list-of-pairs)) (car unzipped))
(cons (cdr (car list-of-pairs)) (cdr unzipped))))))