在GHCi中,当我输入pure 2
时,它会返回2
;或pure "aa"
返回"aa"
。我想知道这个应用实例是如何解决2或" aa"作者:GHCi。
答案 0 :(得分:6)
GHCi表现出一些神奇的用户友好性。
输入类型为... => f a
的表达式时,会尝试将f
实例化为IO
。在您的情况下,这是可能的,因为IO
是一个应用程序(和monad)。
其次,当输入具有... => IO a
形式的表达式时,它将作为IO动作运行。
最后,如果a
属于班级Show
,则会打印结果。在您的情况下"aa"
是结果(类型a
是String
),因此GHCi会打印出来。