在haskell中,我如何将代码作为函数引用

时间:2013-04-04 17:06:25

标签: haskell

我目前有一个应用程序,它有一个菜单,可以执行以下功能:添加,删除和查看。我想知道的是如何将代码作为函数引用。

我试图引用的代码是这样的:

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).

1 个答案:

答案 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!