了解如何在 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"
是结果(并且类型 a
是 String
),所以 GHCi 打印那个。
在 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"
是结果(并且类型 a
是 String
),所以 GHCi 打印那个。