У меня возникнет вопрос для начинающих о датах и String
в Haskell.
Мне нужно получить часть даты (год , месяц или день) как String
в Haskell. Я обнаружил, что если я напишу следующие две строки в GHCi
Prelude> now <- getCurrentTime
Prelude> let mon = formatTime defaultTimeLocale "%B" now
, то mon
будет иметь тип String
. Однако я не могу поместить это в функцию. Я пробовал, например, следующее:
getCurrMonth = do
now <- getCurrentTime
putStrLn (formatTime defaultTimeLocale "%B" now)
Но это возвращает тип IO ()
, и мне нужна String
(также не IO String
, только String
).
Я понимаю, что оператор do
создает монаду, которая мне не нужна, но я не смог найти другого решения для получения даты в Haskell.
Итак, есть ли способ написать такую функцию?
Заранее благодарим за любую помощь!