gpt4 book ai didi

haskell - IO 定义变量的范围

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

我发现在 Haskell 中执行 IO 时,使用 <- 分配的变量运算符仅在紧跟在它们之后的语句的范围内 - 不在 where 中条款。

例如:

main :: IO()
main = do
s <- getLine
putStr magic
where
magic = doMagic s

这不适用于 s不在范围内。我做了一些研究来证实它,发现 this文章:

Unlike a let expression where variables are scoped over all definitions, the variables defined by <- are only in scope in the following statements.



那么我该如何制作 s可用于 where条款?

最佳答案

除了一般的 let 形式之外,还有一个特殊的 let 形式用于 do 语法,您可以改用:

main :: IO()
main = do
s <- getLine
let magic = doMagic s
putStr magic
magic在块中的所有以下行中都可用。

关于haskell - IO 定义变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799370/

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