Size: a a a

2021 June 17

JS

Jerzy Syrowiecki in Haskell
я вот написал сейчас

genMaybeIfFoo :: Gen f => Param -> f a -> f (Maybe a)
genMaybeIfFoo p gen
 | isFoo p   = Gen.maybe gen
 | otherwise = pure Nothing

и чувствую, что single responsibility principle нарушается. как бы отсюда Gen.maybe вынести?
источник

AR

Alexey Raga in Haskell
правда, я и не вижу большой проблемы добавить запятую при изменении порядка строк... это явно не самое тяжёлое и неприятное в моей работе 🙂
Тем более что я часто пишу так:


x = [ one
   , two
   , three
   ]


Соответственно вот меня лично в случае первой строки не спасут лишние запятые с любой из сторон 🙂
источник

к

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

к

кана in Haskell
alwaysNothingUnlessFoo :: Gen f => Param -> f (Maybe a) -> f (Maybe a)
alwaysNothingUnlessFoo p gen
 | isFoo p = gen
 | otherwise = pure Nothing

genMaybeIfFoo p gen
->>>
alwaysNothingUnlessFoo p (Gen.maybe gen)
источник

JS

Jerzy Syrowiecki in Haskell
мне бы лишняя ведущая запятая понравилась

x = [
 , one
 , two
 , three
]
источник

JS

Jerzy Syrowiecki in Haskell
я об этом подумал сразу, но почему-то отмёл. со второго раза лучше смотрится. спасибо
источник

JS

Jerzy Syrowiecki in Haskell
мне только не нравится двойное отрицание в имени, но я сам придумаю что-нибудь
источник

к

кана in Haskell
можно еще убрать Maybe вообще

filteredOrDefault :: Gen f => Param -> f a -> f a -> f a
filteredOrDefault p gen def
 | isFoo p = gen
 | otherwise = def
источник

к

кана in Haskell
а если Gen это альтернатив, то можно аж

filteredFoo :: Gen f => Param -> f a -> f a
filteredFoo p gen
 | isFoo p = gen
 | otherwise = empty

filteredFoo p (Gen.maybe gen) <|> pure Nothing
источник

ЗП

Зигохистоморфный Пре... in Haskell
bool def gen . condition?
источник

к

кана in Haskell
где filteredFoo это специализированный под isFoo guard
источник

к

кана in Haskell
guard (isFoo p) (Gen.maybe gen) <|> pure Nothing
источник

AR

Alexey Raga in Haskell
genMaybeFromBool :: Gen f => (p -> Bool) -> p -> f a -> f (Maybe a)
genMaybeFromBool f a g =
 | f a -> Gen.maybe g
 | otherwise -> pure Nothing
источник

JS

Jerzy Syrowiecki in Haskell
альтернатив, но в empty он ничего не генерит, а надо именно Nothing
источник

JS

Jerzy Syrowiecki in Haskell
Gen из Hedgehog
источник

к

кана in Haskell
поэтому там <|> pure Nothing внешний
источник

к

кана in Haskell
если это альтернатив, то по закону это должно быть то что нужно
источник

к

кана in Haskell
тогда функция вообще ничего про Maybe знать не будет
источник

JS

Jerzy Syrowiecki in Haskell
всем спасибо, я понял, что дальше буду делать
источник

NA

Nikita Aleshchenko in Haskell
Всем привет, подскажите, а есть возможность прокинуть произвольную инфу из wai'евского Apllication в wai'евский Middleware, возможно используя Vault / общую MVar? Что-то никик не соображу. Или такой возможности в принципе нет?
источник