gpt4 book ai didi

haskell - 评估 "main = return (getChar, getChar)"

转载 作者:行者123 更新时间:2023-12-04 18:21:32 26 4
gpt4 key购买 nike

我很抱歉我英语不好。

让我们看看下面的代码。

main = getChar

首先,main会被求值,它的值是“getChar”,但是编译器不知道“getChar”的值,所以编译器会求值“getChar”来计算“getChar”的值,这样,getChar就会被执行。

实际上,当我测试上面的代码时。 “getChar 被执行。

让我们看看下面的代码。
main = return (getChar, getChar)

首先,main 求值,它的值是 return (undefined, undefined) -> IO (undefined, undefined),所以 prelude 会求值 IO (undefined, undefined) 来打印值。因此将评估两个 getChar 之一。

但是,当我测试上面的代码时,两个 getChar 都没有被评估。我不明白为什么没有两个 getChar 被评估。

最佳答案

您必须实际执行您的一元操作,然后返回其执行结果。

func = do
a <- getChar
b <- getChar
return (a,b)

你目前正在做的就像 C 语句:
void main(char &a, char &b)
{
a = getchar;
b = getchar;
}

与您真正想要的相反:
void main(char &a, char &b)
{
a = getchar();
b = getchar();
}

关于haskell - 评估 "main = return (getChar, getChar)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10568470/

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