この関数では:
play :: [Bool] -> ([Bool] -> Bool) -> ([Bool] -> Bool) -> [Bool]
play history agent1 agent2 = history ++ (agent1 history) ++ (agent2 history)
エージェントのいずれかが次の場合:
titForTat :: [Bool] -> Bool
titForTat history
| last history = True
| otherwise = False
エラーが発生します:
Couldn't match expected type `[Bool]' with actual type `Bool'
In the return type of a call of `agent1'
In the first argument of `(++)', namely `(agent1 history)'
In the second argument of `(++)', namely
`(agent1 history) ++ (agent2 history)'
agent1 の戻り値の型はブール値のリストである必要があるように見えますが、エラーがあるようです。これが非常に初心者の質問である場合は申し訳ありません。ありがとうございました