4

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

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

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

1 回答 1

8

首先,let当您在 GHCi 中时使用关键字,因为您在 IO monad 中。您通常不需要它来在源代码中定义函数。例如,您可以有一个名为“MyProgram.hs”的文件,其中包含:

addUserName = do
  putStrLn "Please enter the username:"
  addName <- getLine
  appendFile "UserList.txt" ("\n" ++ addName)

然后在 GHCi 中,键入:

ghci> :l MyProgram.hs
ghci> addUserName

(这是 :l 代表 :load,而不是数字一。)实际上,您可以在 GHCi 中定义一个函数,但除非它是单行的,否则会有点痛苦。这会起作用:

ghci> let greet = putStrLn "Hello!"
ghci> greet
Hello!
于 2013-04-04T17:11:20.913 回答