2017-04-02 10 views
1

次のコードはどのように機能しますか?このコードは、Racketのドキュメントhttps://docs.racket-lang.org/plot/renderer2d.html?q=2d%20renderers#%28part.2.D.Line_.Renderers%29(このページの機能のポイントを参照)のものです。これは通常の関数定義文ではありません。ここでアンダースコアは何を表していますか? このコードのアンダースコアは何ですか?

(define xs (build-list 5 (λ _ (random)))) 

XSは、以下取得した値:ラムダは、パラメータ名(例えば(lambda (a b c) the-body)など)または単一の識別子(例えば、(lambda args the-body)などの識別子のリストを有することができ、いずれか

> xs 
'(0.9520057193043618 0.1339193598495859 0.0019128879992944899 0.7511052254656998 0.4442323053722083) 

答えて

1

、その後保持します

build-listに与えられた関数は、1つのパラメータ(現在のインデックス)をとります。値を使用しない場合は、パラメータ_を指定するのが通例です。

ランダムリストを作成する際に現在のインデックスは気にしないので、パラメータの名前は_です。これは(lambda (_)と書くこともできますが、(1つの)パラメータについては気にしないので、(lambda _と書くこともできます。

+0

これは基本的に(ランダム)20回実行されています。毎回取得しているインデックスは変化しており、無視されています。 – rnso

関連する問題