从目录中获取文件的排序列表

Jak*_*kob 0 haskell

我想要一个目录中的文件排序列表.如何将该sort函数应用于IOmonad 列表?

import System.Directory 
import Data.List

sortedFiles :: FilePath -> IO [FilePath]
sortedFiles path = do
    files <- getDirectoryContents "."
    return sort files                   -- this does not work
Run Code Online (Sandbox Code Playgroud)

Sco*_*est 8

最初的问题是缺少括号,因为目前return正在应用于两个参数(sortfiles),只需解决这个问题:

sortedFiles path = do
    files <- getDirectoryContents "."
    return (sort files)
Run Code Online (Sandbox Code Playgroud)

如果您希望可以fmap对目录内容进行排序功能.它有一种很好的,直接的感觉,基本上将sort函数提升到IO monad:

sortedFiles path = sort `fmap` getDirectoryContents path
Run Code Online (Sandbox Code Playgroud)