如何在Scheme中获取列表的相应元素的级别

时间:2015-05-03 08:12:51

标签: scheme

我想以下列方式打印scheme中每个列表元素的级别。 清单:'(1(20(3(4 40)3)2)1) 预期结果:'(0(1(2(3 4)5)6)7)

请帮助。

1 个答案:

答案 0 :(得分:1)

这样的事情:

(define (print-level x current-level)
  (define (deeper x) (print-level x (+ current-level 1)))
  (define (same   x) current-level)    
  (define (print-element x)
    (if (list? x)
        (map deeper x)
        (same x)))
  (map print-element x))