我是Haskell的初学者,我在路上遇到了一个相当烦人的磕磕碰碰。在我目前的阶段,我只是试图将一个列表从我的主函数传递到另一个,只是打印它,我不明白为什么它不会工作。
在我脑海中,我觉得我应该能够:
main = do
putStrLn "-----Text Editor-----"
putStrLn "Please enter your text"
leftString <- getLine
putStrLn $ "\n\n" ++ leftString ++ "|"
moveCursorLeft = do
putStr $ leftString
但这似乎不起作用,因为'leftString'不在范围内。
答案 0 :(得分:5)
函数调用是调用者和被调用者之间的握手:调用者必须传递一些参数,被调用者必须接受它们。正如您所写,moveCursorLeft
并不接受任何论点。但不要担心,它很容易解决:
moveCursorLeft leftString = do
putStr $ leftString
您现在可以在main
中使用此功能,例如
main = do
leftString <- getLine
putStr "\n\n"
moveCursorLeft leftString
putStrLn "|"