背景故事:为了更好地理解Haskell和函数式编程,我给自己设定了一些任务。我的第一个任务是编写一个程序,能够浏览数据集(如一组数字、博客中的词语等),搜索其中的模式或重复项,将它们分组并报告出来。
听起来很简单。:)
问题:我希望程序首先从文本文件中创建一个列表变量。我熟悉readFile
函数,但我想知道是否有更优雅的方式来输入数据。
例如,我希望用户可以在命令行中输入类似这样的内容来加载程序和数据集。
./haskellprogram textfile.txt
是否有函数可以实现这个功能?
回答:
import System.Environmentmain :: 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 contentsdoSomething :: String -> StringdoSomething = reverse
这些应该足以让你开始了。现在用更有价值的东西替换reverse
🙂