了解如何在 Haskell 中解析纯函数

Understanding how the pure function is resolved in Haskell

在 GHCi 中,当我键入 pure 2 时 returns 2;或 pure "aa" returns "aa"。我想知道 GHCi 如何为 2 或 "aa" 解析这个应用实例。

GHCi 发挥了一些神奇的作用,使用户更加友好。

当输入类型为 ... => f a 的表达式时,它会尝试将 f 实例化为 IO。在您的情况下,这是可能的,因为 IO 是一个应用程序(和一个 monad)。

其次,当输入类型为... => IO a的表达式时,它是运行作为IO动作。

最后,如果a是classShow,则打印结果。在你的情况下 "aa" 是结果(并且类型 aString),所以 GHCi 打印那个。