Scheme高手请进~两个函数相互定义

问题描述:

Scheme高手请进~两个函数相互定义
(define (flat-recur seed list-proc)
(letrec ((helper (lambda (ls)
(if (null?ls) seed
(list-proc (car ls) (helper (cdr ls)))))))
helper))
(define (deep-recur seed item-proc list-proc)
(letrec ((hlp (lambda (ls)
(if (null?ls) seed
(let ((a (car ls)))
(if (or (pair?a) (null?a))
(list-proc (hlp a) (hlp (cdr ls)))
(item-proc a (hlp (cdr ls)))))))))
hlp))
怎么用deep-recur定义flat-recur,怎么用flat-recur定义deep-recur?
就是在定义deep-recur之后用deep-recur的功能来定义flat-recur,另一个就是反过来啦~
本人为菜鸟,这是一本菜鸟入门书的训练题来着

(define (flat-recur seed list-proc)
(deep-recur seed list-proc list-proc))
用flat-recur来定义deep-recur尚未想到好办法..