1

defineSchemeの戻り値が気になります。だから私はラケットで次の行を書きました

#lang r5rs
(display (define a 3))

そして、エラーを取得します

 define: not allowed in an expression context in: (define a 3)

これについて 2 つの質問があります。

  1. define戻り値がないということですか?
  2. R5RS によれば、defineは式ではありません。プログラム構造です。式だけが戻り値を持ち、他のフォームには戻り値がないというのは本当ですか?
4

2 に答える 2

2

「森で木が倒れて、周りに誰もいないとしたら、音はしますか?」

define意味のある戻り値を取得できるコンテキストでの使用は無効です。したがって、戻り値があるかどうかは問題です。あなたはそれを観察することができなくなります。

于 2013-09-14T13:08:58.607 に答える
0

スキームでは、次の2 つの場所defineでのみ使用できます。

  1. 最上位、または
  2. 「体」の一番最初に。

これらの場所のどちらにも、関連する「戻り値」はありません。

于 2013-09-16T07:22:47.557 に答える