【发布时间】:2018-08-14 15:30:09
【问题描述】:
这是我的 Huffman 编码,它返回一个空列表。我的目的是让它将所有对添加到listenr1,但它接缝只返回一个空列表。我不确定它为什么不附加,但我认为我误解了 Scheme 编程的一个基本部分。我不想使用append*。我认为附加可能是错误的,但我不确定为什么。有没有办法在每次附加时替换listenr1?
(define (huffman-leafs tree)
(let ((listenr1 '()))
(define (iterator currentbranch)
(let ((left (left-branch currentbranch))
(right (right-branch currentbranch)))
(if (leaf? left)
(list (symbols left) (weight left))
(append listenr1 (iterator left)))
(if (leaf? right)
(list (symbols right) (weight right))
(append listenr1 (iterator right)))))
(iterator tree)
listenr1))
(huffman-leafs mytree)
【问题讨论】:
-
你可以
setfappend的结果 -
如果我在任何算法语言中使用
var + 5,为什么不将var增加5?
标签: list append scheme huffman-code r5rs