“和”和尾递归

时间:2011-01-04 09:54:51

标签: recursion scheme tail-recursion

我可以使用and语句中的递归调用构建迭代过程吗?

例如,目的,我们有函数foo不做任何事情。它将创建什么样的过程(迭代或递归)?

(define (foo? bar) 
  (if (< bar 0) true (and (> 10 1) (foo? (- bar 1)))))

2 个答案:

答案 0 :(得分:4)

是的,and没问题 - 您可以在standard

中阅读此内容

答案 1 :(得分:4)

对于兰伯特,让我们扩展语法。

(define (foo? bar) 
  (if (< bar 0) 
      #t ; tail position, but no call
      (if (> 10 1) 
          (foo? (- bar 1)) ; tail position
          #f))) ; tail position, but no call