Работа с учебниками и т. Д. В ghci - пока все хорошо. Хотя я чего-то совершенно упускаю: моя функция создает IO [FilePath]
«вещь». В ghci это выглядит так:
["xml","velocity.log.1","velocity.log"]
(список сокращен для краткости)
Я вижу, что функция делает то, что я хочу. Следующий шаг - я хочу «распечатать» это сам.
Ничто из того, что я делаю, не позволяет мне напечатать результат. Я не хочу увековечивать свои привычки Java / C # / Python в Haskell - в этом нет смысла. Я полагаю, что есть веская причина, по которой Хаскелл делает все по-другому, но я не понимаю, как получить (ограниченное) значение из этой функции.
module Main (
main
) where
import RecursiveContents
main = do putStrLn "this"
getRecursiveContents "/home/xyz/myDir"
Это работает. Но что, если я хочу, чтобы main напечатал результат getRecursiveContents "/home/xyz/myDir"
?
В ghci я могу просто набрать / вставить getRecursiveContents "/home/xyz/myDir"
, и материал извергается - что мне нужно сделать, чтобы самому его напечатать?
Если я это сделаю:
let xyz = getRecursiveContents "/home/xyz/myDir"
в ghci, единственное, что я могу сделать с xyz
, это тип:
xyz <enter>
и посмотрите результат.
Я не могу делать голову, хвост и т. Д. И т. Д. Я знаю, что IO [FilePath]
- это нечто особенное, а не то же самое, что массив или список [a]
- но я ничего не делаю, помогая мне понять, как пройти мимо этого
Я, должно быть, что-то упускаю - что-то, чего не могу найти в Learn You a Haskell или Real World Haskell . Разве я не в правильном месте?
Любые отзывы или допинг приветствуются.