有人可以向我解释递归如何在以下函数中工作吗?具体来说,我对函数达到其基本情况时会发生什么感兴趣。另外,为什么在这段代码中使用了一个命名的 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))))))