質問
コンピュータプログラムの Mitビデオ講演シリーズの構造と解釈を進んでいます、そして私は機能からの副作用を返すことについて簡単に質問しました。
ビデオ3a 、教授はこれと同様にfor-each
のためのクイック方程式を書き込みます:
.
(define (for-each p l)
(if (null? l)
"done"
(p (car l)
(for-each p (cdr l)))))
は、スキーム内の関数から副作用を返すための具体的な規則があります。または"done"
は任意の選択肢ですか?
解決
それは実際には副作用ではありませんが、むしろすべての方式関数が何かを返す必要があるということです。文字列"done"
は何かです。通常、for-each
を呼び出すと、次のようなことができます。
.
(for-each (lambda (x) (display x)) lst)
とfor-each
から戻り値を無視してください。著者は、ベースケースから戻るための他の値を簡単に選択できるようになりました。
所属していません StackOverflow