任何人都可以帮助我理解这种功能类型吗?
stateOfMind :: BotBrain -> IO (Phrase -> Phrase)
stateOfMind
是一个函数,BotBrain
只是一个类型。
type Phrase = [String]
type PhrasePair = (Phrase, Phrase)
type BotBrain = [(Phrase, [Phrase])]
如果stateOfMind
有这种类型:BotBrain -> (Phrase -> Phrase)
,则将
stateOfMind
aBotBrain
作为参数来生成一个新函数,该函数采用 aPhrase
并给出 aPhrase
作为结果。但现在我们有一个IO
,即 IO (Phrase -> Phrase)
。这意味着什么?
randomIO
有 monadic 类型,但为什么要这样呢?是因为我们选择的种子吗?Monadic 我通常用于输入和输出,但随机生成器实际上在运行时不会从用户那里获得任何输入。