Size: a a a

2020 May 22

AV

Alexander Vershilov in Haskell
==True -> id
источник

к

кана in Haskell
там еще Just
источник

к

кана in Haskell
вопрос решается тупо призмами для Bool, даже если их можно сгенерить, их отсутствие все еще загадка для меня
источник

AV

Alexander Vershilov in Haskell
а что хочется получить?
источник

к

кана in Haskell
вот что на скрине
источник

к

кана in Haskell
Переслано от кана
ну и почему этой призмы нет в lens либе вообще

разве

filtered ((== Just True) . (^? key "shouldBeIncremeneted" . _Bool))

лучше?
источник

к

кана in Haskell
. non False вызывает примерно такой же зуд как и == True
источник

JS

Jerzy Syrowiecki in Haskell
кана
. non False вызывает примерно такой же зуд как и == True
да, чуть меньше, но тоже странно, согласен
источник

ЗП

Зигохистоморфный Пре... in Haskell
кана
почему нет _True/_False призм?
Можно через iso для Maybe как-то
источник

JS

Jerzy Syrowiecki in Haskell
Зигохистоморфный Препроморфизм
Можно через iso для Maybe как-то
non False :: Iso' (Maybe Bool) Bool?
источник

JS

Jerzy Syrowiecki in Haskell
кана
. non False вызывает примерно такой же зуд как и == True
само по себе нет, только в контексте has
источник

AV

Alexander Vershilov in Haskell
мне fromMaybe False . (^? key ..) нравится
источник

AV

Alexander Vershilov in Haskell
хотя non(False) тоже ок
источник

JS

Jerzy Syrowiecki in Haskell
has' g s = preview g s == Just True

filtered (has' $ key "shouldBeIncremeneted" . _Bool)
источник

MK

Maxim Koltsov in Haskell
тогда уж isTrue, а не has'
источник

JS

Jerzy Syrowiecki in Haskell
is
источник

JS

Jerzy Syrowiecki in Haskell
isJ g s = preview (g . _Bool) s == Just True
filtered (isJ $ key "shouldBeIncremeneted")
источник

AA

A64m AL256m qn<co... in Haskell
кана
почему нет _True/_False призм?
не знаю, действительно выглядит как очень странное упущение
источник

AA

A64m AL256m qn<co... in Haskell
че он тут такое пишет? какой тут инстанс ненайден, кто его ищет, зачем его вообще искать?

> So, what would a nicer error message look like? I prefer something like this:

Main.hs:3:11: error:
   • An instance 'Num a' is required by the use of '+', but no instance was found.
     '(+)' has type '(Num a) => a -> a -> a', but its operands were not required to have the '(Num a)' constraint.
     Possible fix:
       add (Num a) to the constraints of
         the type signature for foo:
           foo :: a -> a -> a
           foo :: (Num a) => a -> a -> a
   • In the expression: a + b
     In an equation for ‘foo’: foo a b = a + b
 |
3 | foo a b = a + b
 |           ^^^^^
источник

АГ

Алексей Герасимов... in Haskell
A64m AL256m qn I0
че он тут такое пишет? какой тут инстанс ненайден, кто его ищет, зачем его вообще искать?

> So, what would a nicer error message look like? I prefer something like this:

Main.hs:3:11: error:
   • An instance 'Num a' is required by the use of '+', but no instance was found.
     '(+)' has type '(Num a) => a -> a -> a', but its operands were not required to have the '(Num a)' constraint.
     Possible fix:
       add (Num a) to the constraints of
         the type signature for foo:
           foo :: a -> a -> a
           foo :: (Num a) => a -> a -> a
   • In the expression: a + b
     In an equation for ‘foo’: foo a b = a + b
 |
3 | foo a b = a + b
 |           ^^^^^
чтобы складывать значения нужен type class Num, его нет, он предлагает добавить констрейнт
источник