такие две функции. Кто-нибудь может объяснить, почему следующие функции имеют одинаковый тип?
import Control.Monad.Reader (asks)
import Data.List (sort)
alphabetize :: String -> String
alphabetize = runReader (asks sort)
alphabetize' :: String -> String
alphabetize' = asks sort
смотри определение asks
asks :: MonadReader r m => (r -> a) -> m a instance MonadReader r ((->) r)
Да сделал сразу, не понял, спросил.
Капец а кто такое пишет в принципе?
Цель понять через использование
А что именно не понял?
тип asks в Hoogle. asks :: Monad m => (r -> a) -> RWST r w s m a если мы дали asks функцию [a] -> [a], то получаем RWST [a] w s m [a] ? Как она становится [a] -> [a]. Вот
это не тот аскс, не смотри в хугл на то что у тебя уже есть
Обсуждают сегодня