5

簡単に言えば、私の質問は、Schemeの定義式のタイプは何ですか?

たとえば、次のようにします。

(define x 5)

また

(define x (lambda (n) (* n n)))

それは私にとって少し混乱しています。誰か助けてもらえますか?

4

1 に答える 1

11

Racketdefineは特殊な形式であり、式ではないため、それ自体には値がありません。このようなものを実行しようとすると、エラーが発生します。

(display (define x 42))
=>  define: not allowed in an expression context in: (define x 42)

値があるとしたら、それに似たものになりますvoidが、それはインタプリタの特定の実装の詳細に依存します( aが完了し#tた後に1人のインタプリタが戻ってくるのを見たと思います)define

定数#<void>は、副作用があり、有用な結果がないほとんどのフォームとプロシージャによって返されます

仕様では、この点についても詳しく説明していません。実装に依存しているというステートメントを補強しています。

于 2013-03-19T15:56:20.997 に答える