我需要列表来进一步操作字符串.我不想只打印字符串列表!
https://gist.github.com/bigos/0067a62e15dbed264ce6ef92e0eca58c
如果有人提供了一个示例,其中代码遍历文件名列表并打印每个文件名的前半部分,我会考虑回答这个问题.
这个问题 如何从Haskell的IO动作中获得正常值得到 Riccardo T.的答案.
有很好的伪代码示例.
你可以(=<<) :: ([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)