Size: a a a

2021 February 26

K

Kir in Haskell
GNU/Vsevolod
bimap :: (a->b) -> (c->d) -> (a, c) ?
import Data.Bifunctor
import Control.Monad

both :: (a -> b) -> (a, a) -> (b, b)
both = join bimap
источник

к

кана in Haskell
есть и готовый both в линзах

over both show (1, 2) = ("1", "2")

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

h

hyperaccelerated dra... in Haskell
Yan Shkurinskiy
Тогда увы, придется использовать обычный стандартный bimap?
ага, но если название функции длинное, то писать bimap longFuncName longFuncName как-то не очень :)
источник

к

кана in Haskell
hyperaccelerated dragon
ага, но если название функции длинное, то писать bimap longFuncName longFuncName как-то не очень :)
let f = longFuncName in bimap f f
источник

h

hyperaccelerated dra... in Haskell
кана
let f = longFuncName in bimap f f
так и делал раньше, но читабельность хуже чем от просто bimapBoth f
источник

YS

Yan Shkurinskiy in Haskell
Тут ещё стрелки предложили
источник

YS

Yan Shkurinskiy in Haskell
Хотя имя тоже два раза писать
источник

YS

Yan Shkurinskiy in Haskell
Я обычно стараюсь держать что-то типа локальной прелюдии на проект
источник

YS

Yan Shkurinskiy in Haskell
И там писать что нужно
источник

h

hyperaccelerated dra... in Haskell
Yan Shkurinskiy
Тут ещё стрелки предложили
а их кстати кто-то вообще использует сейчас? встречаю их только когда кто-то пытается объяснить профунктор. а в коде, то как-то не попадались
источник

YS

Yan Shkurinskiy in Haskell
Я видел пару раз
источник

KV

Kirill Valyavin in Haskell
Там много полезных штук типа ***, &&&, first, second
источник

KV

Kirill Valyavin in Haskell
>>> и <<< ещё, только не бейте
источник

С

Сергей in Haskell
Kirill Valyavin
>>> и <<< ещё, только не бейте
давно пора флип точку добавить в прелюдию
источник

AA

A64m AL256m qn<co... in Haskell
GNU/Vsevolod
В стд есть что-то вида
(a -> b) -> (a, a) -> (b, b)?
И почему
f <$> (a, b) применяет функцию именно ко 2-му элементу?
> (1,2) & both %~ even
(False,True)


lens - де факто стд
источник

G

GNU/Vsevolod in Haskell
A64m AL256m qn I0
> (1,2) & both %~ even
(False,True)


lens - де факто стд
> :m + Control.Lens
> Could not find module 'Contro.Lens'
источник

KV

Kirill Valyavin in Haskell
Сергей
давно пора флип точку добавить в прелюдию
+
источник

AA

A64m AL256m qn<co... in Haskell
ну про строки и массивы так же будет написано, это ж не значит что вектор и текст не де факто стд
источник

AA

A64m AL256m qn<co... in Haskell
Сергей
давно пора флип точку добавить в прелюдию
зачем?
источник

С

Сергей in Haskell
удобно иногда
источник