Size: a a a

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

2019 June 06

p

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

var bar = function (v) {
   return function (v1) {
       return v.foo;
   };
};
Ну, вот, мы замыкаем весь v, хотя нужен был лишь v.foo
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
parket
Ну, вот, мы замыкаем весь v, хотя нужен был лишь v.foo
надо лифтить на верх и екстрактить поле, но это сложная оптимизация
источник

p

parket in PureScript — русскоговорящее сообщество
Оно так и сделает, если вот это закомментить

https://github.com/purescript/purescript/blob/master/src/Language/PureScript/CoreImp/Optimizer/Inliner.hs#L39
источник

ЗП

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

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
newtype YA p f a = YA (forall r. (forall b. p b a -> f b -> r) -> r)

toYA :: forall p f a b. p b a -> f b -> YA p f a
toYA pba fb = YA \f -> f pba fb

withYA :: forall p f a r. (forall b. p b a -> f b -> r) -> YA p f a -> r
withYA x (YA k) = k x

instance functorYA :: Profunctor p => Functor (YA p f) where
 map f (YA fn) = YA (\gn -> fn (lcmap (rmap f) gn))
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
type Coyoneda f a = YA (->) f a
источник
2019 June 07

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
I need some help with routing-duplex
Lets say I have the following type describing query parameters:
type TrackQuery =
 { genres ∷ Maybe (Array String)
 }
How can I define a route "codec" for the query type above?
I want to use the name "tags" instead of "genres", also I want "genres" to be optional.
So the example URL will be "tracks?tags=genre1,genre2"
route = "tracks" / (record # _genres := ??? "tags")
 where
   _genres = SProxy ∷ SProxy "genres"
(продублировал из слака)
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
nvm, разобрался
type TrackQuery =
 { genres ∷ Maybe (Array String)
 }

route ∷ RouteDuplex' TrackQuery
route = path "tracks" (record # _genres := optional (many1 $ param "tags"))
 where
   _genres = SProxy ∷ SProxy "genres"
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
хм, а вот как params ... <> record ... сделать — не понятно, тк RouteDuplex не полугруппа, но я пока не знаю как сделать RouteParser a semigroup

instance semigroupRouteDuplex :: Semigroup (RouteDuplex i o) where
 append (RouteDuplex i1 o1) (RouteDuplex i2 o2) = RouteDuplex (i1 <> i2) (o1 <> o2)

instance semigroupRouteParser ∷ RouteParser where
 append (Chomp f) (Chomp g) = Chomp $ f <> g
 ... ?
источник

VY

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

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
хм, понял
я ошибочно думал, что (/) это path
+ убрать r
foo ∷ RouteDuplex' { | AuthQuery + () }
foo = record # authenticated # paginated
источник
2019 June 10

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
что-то интересное происходит https://github.com/natefaubion/purescript-optimizer
источник

ЗП

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

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
а, да, пока строчек 20 там
на зато можно понаблюдать
источник
2019 June 11

ЗП

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

ЗП

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

ЗП

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

ЗП

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

instance mfunctorFreeT :: Functor f => MFunctor (FreeT f) where
 hoist = hoistFreeT


справедливо
источник

λ

λоλторт in PureScript — русскоговорящее сообщество
а что вы используете для того, чтобы квантор всеобщности писать юникодовым символом?
источник