shell - 使用 Haskell 输入数据

标签 shell haskell functional-programming io machine-learning

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

听起来很简单。 :)

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

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

./haskellprogram textfile.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

这应该足以让您开始。现在用更有值(value)的东西替换 reverse :)

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

关于shell - 使用 Haskell 输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8747780/

相关文章:

haskell - F#有多路if吗?

bash - 如何查找名称以 "a"开头的文件?

shell - Google Cloud Shell 编辑器未加载资源

linux - 限制linux用户到一个文件夹

haskell - 代码在 Elm 中编译,但在 Haskell 中不编译

.net - F# 中的业务线应用程序多久会成为常态?

javascript - 使用 [...new Set()] 仅获取基于内部 Array<object.id> 的唯一值?

linux - bash 中的 fork 和 exec

c++ - 如何在 Haskell 中使用我的递归函数?

haskell - Haskell 中的文学编程真的是 "literate programming"吗?