gpt4 book ai didi

haskell - "return 1"如何在 GHCi 中显示 "1"?

转载 作者:行者123 更新时间:2023-12-04 14:08:23 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is the default type evaluation of MonadPlus in Haskell?

(2 个回答)


3年前关闭。




这是我输入 return 1 时得到的结果在 GHCi 中。

> return 1
1

由于我没有指定 return 的类型, 类型 return 1Monad m, Num a => m a
GHCi如何显示 1即使没有 Show 的实例?

最佳答案

Monad m => m默认为 IO , 这就是如何。

然后执行 IO Action ,不进行 I/O,并返回值。

Ghci 有两种输出操作模式:当评估值的类型为 IO a 时当它没有的时候。第一种情况,执行IO Action ,类型为a的值由 Action 产生的显示。在第二种情况下,只显示评估值。

由于您在 Ghci,return 1 :: (Monad m, Num a) => m a 的类型实际上是 IO Integer . m默认为 IO , 和 a默认为 Integer ,所以 Integer 1显示。

启用显示类型的 GHCi,使用 ghci> :set +t ,然后尝试 return 1.0 .它返回 Double , 和 Double s 也有 Show实例。

> return 1
1
it :: Integer

> return 1.0
1.0
it :: Double

> return "3"
"3"
it :: [Char]

> print "3"
"3"
it :: ()

关于haskell - "return 1"如何在 GHCi 中显示 "1"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56269805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com