【发布时间】:2021-01-24 00:13:37
【问题描述】:
我正在编写一些代码,在给定自然数列表的情况下输出阶乘列表。所以 (list 1 4 3) 会给出 (list 1 24 6)。目前,当与 (cons ......) 在线时,Racket 给我错误“首先:需要一个非空列表;给定:空”。我使用调试器检查,代码永远不会为空,有没有办法解决这个问题?
(define (factorialize arr)
(cond
[(empty? arr) empty]
[else (cons (factorial (first arr)) (factorialize (factorial (first (rest arr)))))]))
;;helper function
(define (factorial num)
(cond
[(= 0 num) 1]
[else (* num (factorial (- num 1)))]))
【问题讨论】:
标签: list debugging recursion scheme racket