我目前正在尝试通过函数修改 LLT(叶标记树)。
本质上我希望叶值(L)由函数(fn)修改
到目前为止,这是我的代码
(define (llt-map fn T)
(cond
[(empty? T) '()]
[(not (list? (first T)))
(cons (fn (first T))
(llt-map fn (rest T)))]
[else (cons
(llt-map fn (first T))
(llt-map fn (rest T)))]))
代码实际上是有效的,但我有一个案例我想检查,但我不知道为什么它不工作。我确信这很容易找出为什么这个案例不起作用,但我不知道为什么。
这是不起作用的情况
(check-expect (llt-map (lambda (x) (+ 5 (/ x 2)))
(list 2 (list 20 30 40) list 8))
(list 6 (list 15 20 25) list 9))