这是该计划必须做的一个例子:
(count ‘(1 2 3 4 5 6)) => (1 1 1 1 1 1)
(count ‘(6 8 3 6 6 1)) => (1 0 1 0 0 3 0 1)
输入列表中每次出现的数字都必须在输出列表的相应索引中计算。
你能帮我找到解决方案吗?
答案 0 :(得分:0)
以下是build-list
和foldr
的简单解决方案示例:
(define (count l)
(build-list (apply max l)
(lambda (i)
(foldr (lambda (x y) (if (= x (+ i 1)) (+ y 1) y)) 0 l))))
(count '(6 8 3 6 6 1)) ;==> (1 0 1 0 0 3 0 1)