質問

コンピュータプログラムの 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から戻り値を無視してください。著者は、ベースケースから戻るための他の値を簡単に選択できるようになりました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top