我目前有一个应用程序,它有一个菜单,可以执行以下功能:添加,删除和查看。我想知道的是如何将代码作为函数引用。
我试图引用的代码是这样的:
putStrLn "Please enter the username:"
addName <- getLine
appendFile "UserList.txt" ("\n" ++ addName)
我是否必须使用let功能?例如:
let addUserName =
putStrLn "Please enter the username:"
addName <- getLine
appendFile "UserList.txt" ("\n" ++ addName).
答案 0 :(得分:8)
首先,您在GHCi中使用let
关键字,因为您在IO monad中。您通常不需要它来在源代码中定义函数。例如,你可以有一个名为&#34; MyProgram.hs&#34;含有:
addUserName = do
putStrLn "Please enter the username:"
addName <- getLine
appendFile "UserList.txt" ("\n" ++ addName)
然后在GHCi中输入:
ghci> :l MyProgram.hs
ghci> addUserName
(那是:l代表:加载,而不是数字。)实际上,你可以在GHCi中定义一个函数,但它有点痛苦,除非它是一个单行程。这可行:
ghci> let greet = putStrLn "Hello!"
ghci> greet
Hello!