如何获取当前目录中包含文件名的字符串列表?

rub*_*ect -4 haskell

我需要列表来进一步操作字符串.我不想只打印字符串列表!

我的代码到目前为止

https://gist.github.com/bigos/0067a62e15dbed264ce6ef92e0eca58c

澄清我的目标

如果有人提供了一个示例,其中代码遍历文件名列表并打印每个文件名的前半部分,我会考虑回答这个问题.

解释为什么我不能这样做

这个问题 如何从Haskell的IO动作中获得正常值得到 Riccardo T.的答案.

有很好的伪代码示例.

Dan*_*ner 6

你可以(=<<) :: ([String] -> IO b) -> (IO [String] -> IO b)用来教一个函数,它需要字符串列表如何处理一个像listDirectory "."生成IO包装的字符串列表的值.在惯用的Haskell中,它的flipped形式(>>=) :: IO [String] -> ([String] -> IO b) -> IO b更常见,因为它的参数按IO执行的顺序出现.所以,例如:

import System.Directory

printFirstHalfOfSingleString :: String -> IO ()
printFirstHalfOfSingleString s = putStrLn (take (length s `div` 2) s)

printFirstHalfOfEachString :: [String] -> IO ()
printFirstHalfOfEachString = mapM_ printFirstHalfOfSingleString

main = listDirectory "." >>= printFirstHalfOfEachString
Run Code Online (Sandbox Code Playgroud)

  • @ruby_object为什么不在你的问题中说出来?如果您发布了该代码,您可能会更快地得到答案. (2认同)