and
ステートメントで再帰呼び出しを使用して反復プロセスを構築できますか?
たとえば、目的、foo
何もしない関数があります。どのようなプロセス (反復または再帰) を作成しますか?
(define (foo? bar)
(if (< bar 0) true (and (> 10 1) (foo? (- bar 1)))))
and
ステートメントで再帰呼び出しを使用して反復プロセスを構築できますか?
たとえば、目的、foo
何もしない関数があります。どのようなプロセス (反復または再帰) を作成しますか?
(define (foo? bar)
(if (< bar 0) true (and (> 10 1) (foo? (- bar 1)))))
はい、大丈夫です-これは標準and
で読むことができます。
Lambert のために、構文を拡張してみましょう。
(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