Мне удалось напечатать список каталогов с этим кодом на Haskell:
import Control.Monad
import Control.Applicative
import System.Directory
main :: IO()
main = do
all <- listDirectory "x:/n"
mapM_ print all
Но теперь я хочу отфильтровать все с помощью функции doFileExist из модуля System.Direcorty и не могу понять, как это сделать.используйте его правильно:
import Control.Monad
import Control.Applicative
import System.Directory
main :: IO()
main = do
all <- listDirectory "x:/n"
mapM_ print (filterM doesFileExist all)
приведенный выше код не компилируется с ошибкой:
* No instance for (Foldable IO) arising from a use of `mapM_'
* In a stmt of a 'do' block:
mapM_ print (filterM doesFileExist all)
In the expression:
do all <- listDirectory "x:/n"
mapM_ print (filterM doesFileExist all)
In an equation for `main':
main
= do all <- listDirectory "x:/n"
mapM_ print (filterM doesFileExist all)
mapM_ print (filterM doesFileExist all)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Полагаю, я что-то упустил, так что, пожалуйста, дайте мнерукой найти способ понять, чего мне не хватает.Спасибо