1

すべての可能なもののリストがあるとしましょう

all3PStrategies :: [Strategy3P]
all3PStrategies = [strategyA, strategyB, strategyC, strategyD]  //could be longer, maybe even infinite, but this is good enough for demonstrating

これで、整数Nと 2 つの戦略を取り、最初の戦略をN時間に使用し、次に 2 番目の戦略をN時間に使用して、必要なだけ繰り返し続ける別の関数ができました。
が 0の場合はどうなりますかN。関数の目的に反するため、ランダムな戦略を返したいのですが、最終的には特定の戦略を適用する必要があります。

rotatingStrategy [] [] _ = chooseRandom all3PStrategies
rotatingStrategy strategy3P1 strategy3P2 N =
  | … // other code for what really happens

だから私はリストからランダムな戦略を取得しようとしています. これでうまくいくと思います:

chooseRandom :: [a] -> RVar a

しかし、Haddock/doctest を使用してテストするにはどうすればよいでしょうか?

--  >>> chooseRandom all3PStrategies
--      // What goes here since I cant gurauntee what will be returned...?

ランダム関数は Haskell の関数型の考え方に反するものだと思いますが、私も間違っている可能性があります。命令型言語では、random 関数はさまざまなパラメーター (Java の Time など) を使用して乱数を決定します。

4

2 に答える 2