我想要一个目录中的文件排序列表.如何将该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)
最初的问题是缺少括号,因为目前return正在应用于两个参数(sort和files),只需解决这个问题:
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)
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |