1

次のプロシージャrandom-choiceには、choiceというプロシージャが含まれています。

(define (random-choice strategy-1 strategy-2) 
 (choice strategy-1
 strategy-2
 (lambda (ship-state) (= (random 2) 0))))

2つの戦略をランダムに選択する手順の選択肢を作成するにはどうすればよいですか?また、ラムダを引数としてプロシージャからプロシージャに渡す方法を説明できますか?

4

1 に答える 1

1

次に、2つの可能な値からランダムに値を選択する方法の例を示します。

(define (choice s1 s2)
  (if (zero? (random 2)) s1 s2))

プロシージャはランダムに選択された値を返します。それを使用する方法はあなた次第です。また、alambdaは他の値と同じように引数として渡すことができ、違いはありません。例えば:

((choice (lambda (x) (first x))
         (lambda (x) (last  x)))
 '(1 2 3 4 5))

上記は、リストの最初または最後の要素を選択するための戦略からランダムに選択し、次にその選択をリストに適用します。数回実行すると、1返されることもあれば、返されることもあり5ます。

于 2013-02-06T01:25:39.410 に答える