Haskell IO共享参数
在Haskell中,是否可以将用户输入从一个IO函数共享到另一个IO函数 例如,如果我有:Haskell IO共享参数,haskell,syntax,io,Haskell,Syntax,Io,在Haskell中,是否可以将用户输入从一个IO函数共享到另一个IO函数 例如,如果我有: main = do putStrLn "Give me a number!" my_stuff <- getLine let nump = read (my_stuff)::Int another_function nump 这在我脑海中的哈斯凯尔解释器的幻想世界中是有意义的。然而,在现实世界中:我的东西在另一个函数中没
main = do
putStrLn "Give me a number!"
my_stuff <- getLine
let nump = read (my_stuff)::Int
another_function nump
这在我脑海中的哈斯凯尔解释器的幻想世界中是有意义的。然而,在现实世界中:我的东西在另一个函数中没有绑定;总的来说,我的东西需要是IO t类型,但不是
上面的代码(很可能)会非常冒犯Haskellers,但我希望它传达了我的目标
我如何解决这个问题 此代码有效。这就是你想做的吗?如果没有,你能提供不起作用的代码吗
main = do
putStrLn "Give me a number!"
my_stuff <- getLine
let nump = read (my_stuff)::Int
another_function nump
another_function nump = do
putStrLn $ show nump
putStrLn "Try again!"
main
main=do
putStrLn“给我一个号码!”
我的东西这个代码有效。这就是你想做的吗?如果没有,你能提供不起作用的代码吗
main = do
putStrLn "Give me a number!"
my_stuff <- getLine
let nump = read (my_stuff)::Int
another_function nump
another_function nump = do
putStrLn $ show nump
putStrLn "Try again!"
main
main=do
putStrLn“给我一个号码!”
我的东西另一个函数的类型将非常有用。或者,如果您不确定类型,至少显示它的实现。它应该是沿着[String]->IO something
,从错误消息看,似乎是你让它接受了一个IO
参数。@delnan哦,我还没有真正写出另一个函数。我写的都是我的东西,我的东西应该是一个字符串。我想看看你是否能做“参数传递”。s@delnan我想你可能误解了这个问题。所以我决定澄清一下。看看你是否还有兴趣帮忙:)嗯,我想帮忙。但是您现在发布的代码仍然可以,忽略您必须使用show
将nump
转换回putStrLn
的字符串,因为它是Int
(这与您描述的错误不符)。我担心我们将不得不引入大人物-请复制并粘贴您的确切代码以及您如何编译/运行它。查看的类型另一个功能将非常有用。或者,如果您不确定类型,至少显示它的实现。它应该是沿着[String]->IO something
,从错误消息看,似乎是你让它接受了一个IO
参数。@delnan哦,我还没有真正写出另一个函数。我写的都是我的东西,我的东西应该是一个字符串。我想看看你是否能做“参数传递”。s@delnan我想你可能误解了这个问题。所以我决定澄清一下。看看你是否还有兴趣帮忙:)嗯,我想帮忙。但是您现在发布的代码仍然可以,忽略您必须使用show
将nump
转换回putStrLn
的字符串,因为它是Int
(这与您描述的错误不符)。我担心我们将不得不引入大人物-请复制并粘贴您的确切代码以及您如何编译/运行它。请看与原始问题不太相关的内容,但我可能会重写阅读(我的东西)::Int
,因为帕伦夫妇实际上什么都不做。无论是作为(读我的东西)::Int
还是仅仅是读我的东西::Int
。与原来的问题不太相关,但我可能会重写读(我的东西)::Int
,因为父母实际上什么都不做。要么作为(读我的东西)::Int
,要么只是读我的东西::Int
。