使用Haskell输入数据

sub*_*ray 5 io shell haskell functional-programming machine-learning

回到故事:为了更好地理解Haskell和函数式编程,我给自己做了一些任务.我的第一个任务是创建一个程序,可以查看数据集(一组数字,博客中的单词等),搜索模式或重复,对它们进行分组并报告它们.

听起来很容易.:)

问题:我希望程序首先从文本文件中的数据创建列表变量.我熟悉readFile函数,但我想知道是否有更优雅的方式来输入数据.

例如,我想允许用户在命令行中输入类似的内容来加载程序和数据集.

./haskellprogram textfile.txt

是否有允许这个功能的功能?

Jan*_*Jan 12

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
Run Code Online (Sandbox Code Playgroud)

这应该足以让你开始.现在替换reverse更有价值的东西:)

说到解析一些输入数据,您可能会考虑将数据分解为lineswords使用Prelude中的相应函数.