Size: a a a

PureScript — русскоговорящее сообщество

2018 August 15

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
портирую хаскельный сплит)
https://github.com/xgrommx/purescript-split
источник
2018 August 16

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
https://github.com/chjj/blessed лучше вот это спортируй
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
а то один пытался и не доделал :( https://github.com/kRITZCREEK/purescript-blessed
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
интересно, зачем  такое может понадобиться:
coerce :: forall f a b. Contravariant f => Functor f => f a -> f b
coerce a = absurd <$> (absurd >$< a)
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
т.е. понятно как это работает
(Void -> a) ((Void -> a) -> f a -> f Void) (f a)
(Void -> b) <$> f Void
f b

но не понятно зачем)
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
А больше никак нельзя получить f b из f a :)
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
Потому что нельзя сконструировать f b из ничего
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
Но такая функция иногда нужна - просто чтобы была и её можно было вставить
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
Иногда есть дырка (f a -> f b) и вставить в неё нечего. Такую функцию даже не сконструируешь тотальной. Если не использовать абсурд :)
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
хм, ну да
единственный вариант еще: map unsafeCoerce
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
unsafe же
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
А coerce - safe
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
да, в целом понял, спасибо
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
В профункторных линзах как раз coerce используется. И не вызывается :)
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
У coerce ещё и констреинт интересный: Contravariant + Functor
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
т.е. тут f бивариантный, как и любой фантом
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
ага
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
Поэтому и safe
источник

AP

Aleksei (astynax) Pirogov in PureScript — русскоговорящее сообщество
Захочешь - не вызовешь :)
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
еще его phantom называют)
источник