【发布时间】:2017-05-10 19:50:39
【问题描述】:
你好,我已经想过并做了一个练习:
定义一个函数,它接受一个列表作为第一个参数,该列表可以包含原子和递归列表,第二个参数是一个原子。原子的值不会重复。函数返回原子在列表中的位置,如果不存在则返回零。你应该使用列表吗?
Ejemplo
(profundidad
‘(c a b (r t) f (1 ((3 4) 5)
a)
returns:
1
(profundidad
‘(c a b (r t) f (1 ((3 4) 5)
k)
returns:
0
(profundidad
‘(c a b (r t) f (1 ((3 4) 5)
t)
returns:
2
(profundidad
‘(c a b (r t) f (1 ((3 4) 5)
4)
returns:
4
我的代码:
(define (profundidad L c)
(cond
((null? L) 0)
((equal? (car L) c) 1)
((list? (car L)) (+ (profundidad (car L) c) 1))
(else(profundidad (cdr L) c))))
它可以很好地解析普通列表,但我如何递归地从内部列表返回?
感谢您的宝贵时间!
【问题讨论】:
标签: scheme