背景故事:为了更好地理解 Haskell 和函数式编程,我给自己布置了一些作业。我的第一个任务是编写一个程序,可以查看数据集(一组数字、博客中的单词等)、搜索模式或重复、对它们进行分组并报告它们。
听起来很容易。 :)
Question:我希望程序首先从文本文件中的数据创建一个列表变量。我很熟悉readFile函数,但我想知道是否有更优雅的方式来输入数据。
例如,我想允许用户在命令行中键入类似的内容来加载程序和数据集。
./haskell程序文本文件.txt
有没有一个功能可以实现这一点?
import System.Environment
main :: IO ()
main = do
args <- getArgs
-- args is a list of arguments
if null args
then putStrLn "usage: ./haskellprogram textfile.txt"
else do contents <- readFile $ head args
putStrLn $ doSomething contents
doSomething :: String -> String
doSomething = reverse
这应该足以让您开始。现在更换reverse
有更有价值的东西:)
说到解析一些输入数据,您可能会考虑将数据分解为lines http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:lines or words http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:words使用 Prelude 中的相应函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)