Size: a a a

2021 December 10

AP

Aleksei (astynax) Pi... in Haskell Start
это всё ещё композиция функций одного аргумента
источник

GP

Grigory Petrov in Haskell Start
источник

AP

Aleksei (astynax) Pi... in Haskell Start
просто так вышло, что первый fmap принимает аргументом функцию
источник

AP

Aleksei (astynax) Pi... in Haskell Start
(*) . (+)  такое уже не пройдёт проверку типов
источник

AP

Aleksei (astynax) Pi... in Haskell Start
filter . (<)  а это пройдёт
источник

D

Dmitry in Haskell Start
понятнее, спасибо Алексей
источник

AP

Aleksei (astynax) Pi... in Haskell Start
((Int->Bool) -> ([Int]->[Int])) -> (Int -> (Int->Bool)) -> (Int -> ([Int]->[Int]))
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Это всё та же композиция
(b -> c) -> (a -> b) -> (a -> c)
Просто тут часть типов — функции
источник

D

Dmitry in Haskell Start
а ещё такой вопрос: почему компилятор говорит, что
‘liftA2’ is not a (visible) method of class ‘Applicative’
?
источник

D

Dmitry in Haskell Start
я его пытаюсь определить в инстансе аппликатива
ведь он там и должен быть
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Метод не экспортирован в Prelude, поэтому и not a visible
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Импортируйте из Control.Applicative
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Но зачем этот метод определять? Не хотите определять <*>?
источник

D

Dmitry in Haskell Start
Если я правильно понимаю, лифт - это алиас для  <$> <*>
А определяю я его просто из любопытства
источник

AP

Aleksei (astynax) Pi... in Haskell Start
не алиаc
источник

AP

Aleksei (astynax) Pi... in Haskell Start
просто liftA2 и <*> выражены друг через друга, чтобы нужно было реализовывать что-то одно
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Но могут быть ситуации, когда эффективнее реализовать отдельно <*> и liftA2. Только бывает такое очень редко, поэтому лучше пользоваться умолчательным определением одного через другое
источник

[

[BRM]White Rabbit in Haskell Start
ну так композиция функторов через точку довольно идиоматична
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Скажем так, fmap . fmap можно встретить часто. Паттерн "перепрыгнуть уровень" :)
источник

[

[BRM]White Rabbit in Haskell Start
да
источник