@haskellru

Страница 1428 из 1551
Александр
29.08.2018
10:53:37
Откуда вы все это знаете :/

Андрей
29.08.2018
10:54:11
простите что вмешиваюсь в умные темы, напомните плиз, а filter у нас не генерализован каким-нибудь классом типов?

и если нет то почему?

Google
Denis
29.08.2018
10:57:13
и еще https://hackage.haskell.org/package/compactable-0.1.2.2/docs/Control-Compactable.html

Андрей
29.08.2018
10:57:33
ага, оно. просто подумалось что почему бы ему не быть, и как всегда в сабже оно уже есть

Denis
29.08.2018
10:58:35
ну и mfilter из Control.Monad

в purescript они объединили несколько идей https://github.com/LiamGoodacre/purescript-filterable

еще есть http://hackage.haskell.org/package/filtrable-0.1.0.2/docs/Data-Filtrable.html но мне по душе, как в пурсе сделано

Ilya
29.08.2018
11:17:59
не все, как я сказал, нужен так f . foldr g i
Если f -- произвольная, то это бесполезное (тривиальное) утверждение же

Типа f . foldr (:) [] и всё (поправлено)

f . foldr g a = foldr h b, where f a = b, f (g x y) = h x (f y)
Это уравнение что ли написано?:) А у него всегда решения есть?

Alexander
29.08.2018
11:28:06
Ilya
29.08.2018
11:39:31
это rewrite rules для foldr
как понимать строчку f (g x y) = h x (f y) ?

что-то не то с этим rewrite rule, кмк

Google
Terminator
29.08.2018
15:51:33
@Readonlys будет жить. Поприветствуем!

kana
29.08.2018
17:57:31
f . foldr g a = foldr h b, where f a = b, f (g x y) = h x (f y)
ну вот пусть f = show g = (+) a = 0 я хочу show . foldr (+) 0 по правилу я получую какой-то foldr h b, как получить эти h, b

я вижу это невозможным без read например

Ilya
29.08.2018
19:35:52
ну вот пусть f = show g = (+) a = 0 я хочу show . foldr (+) 0 по правилу я получую какой-то foldr h b, как получить эти h, b
Я ж говорю, там не rewrite rule, там полноценное уравнение на функцию h записано. В данном случае его решение это h x y = show (x + read y).

Не во всех случаях оно разрешимо

Alexander
29.08.2018
22:04:59
а у нас не появилось в современном Haskell возможности выбора по какой типопеременной траверс делать?

скажем у меня есть: data Foo a b = Foo a | Bar b | Baz Q я хочу сделать traverse ioA2C >=> traverse ioB2D :: Foo A B -> IO (Foo C D)

A64m
29.08.2018
22:08:20
в generic-lens есть

Denis
29.08.2018
22:08:50
traverse @SomeType ioA2C >=> traverse @SomeType2 ioB2D мб как-то так

Alexander
29.08.2018
22:09:29
в generic-lens есть
чего-то я боюсь их тащить

@A64m_qb0 а где там?

A64m
29.08.2018
22:10:09
param @1

Denis
29.08.2018
22:10:24
не взлетит же это
ну ты подставь правильно) я просто как пример написать, юзать TypeApplications

Alexander
29.08.2018
22:10:43
TypeApplication же не взлетит

@A64m_qb0 так param @1 сделает мне правильный Traversal, а как мне теперь его "запустить"?

A64m
29.08.2018
22:12:56
?

Alexander
29.08.2018
22:15:42
traverseOf (param @1) function foo ?

так как-то?

@A64m_qb0 ^

Google
A64m
29.08.2018
22:17:10
не понял, зачем тут траверсоф

Alexander
29.08.2018
22:17:57
у меня есть Foo A B, хочу сделать IO (Foo C D) пройдясь (A -> IO C) и (B -> IO D)

или я тут туплю в ночи?

A64m
29.08.2018
22:19:29
traverseOf = id

Alexander
29.08.2018
22:19:41
а

понял

A64m
29.08.2018
22:19:52
param @1 и будет вместо traverse

Alexander
29.08.2018
22:20:03
понял

а если у меня больше вложенность Baz (Foo A B) -> IO (Bar (Foo C D)) ?

A64m
29.08.2018
22:23:23
в Baz зайти сначала

Alexander
29.08.2018
22:24:01
traverse ( (param @1) foo) ?

теперь осталось понять хочу ли я этого всего

Alexander
29.08.2018
22:24:32
но хотя бы идею понял

A64m
29.08.2018
22:25:07
(traverse . param @1) f foo

Alexander
29.08.2018
22:25:26
+

поидее наиболее правильное решение у меня если есть зависимость от контекста, но тогда уже не получится так

сейчас попробую по человечески написать:

data Bar a = Bar U V a data Baz q b = BazL q | BazR b | Baz type Q = Bar (Baz K L) f :: U -> V -> K -> IO Щ g :: U -> V -> L -> IO Ц magic :: Q -> IO (Bar (Barz Щ Ц)

@A64m_qb0 ^

имеет ли смысл тут с линзами или не мучаться и case написать

Google
Alexander
29.08.2018
22:30:12
если бы оно ещё и все быстро работало, то наверное надо было бы линзы использовать т.к. код проще и убирает бойлерплейт

на самом деле у меня там +1 слой, но это не важно

Admin
ERROR: S client not available

Alexander
29.08.2018
22:31:33
traverse его тупо сохраняет

7 строк вместо 2 :/

Dmitry
30.08.2018
07:35:42
Какая стандартная функция лучше всего подходит под case следующего вида? x <- case someMaybeValue of Nothing -> pure Nothing Just v -> foo v Где foo имеет тип foo :: a -> IO (Maybe b) (то есть у x в итоге будет тип Maybe b).

kana
30.08.2018
07:37:39
MaybeT IO >>= вроде fmap join . traverse foo ещё мб

Dmitry
30.08.2018
07:44:40
Я бы хотел ещё короткий код... Что-то в духе x <- runMaybeT $ maybeToMaybeT someMaybeValue <|> MaybeT foo не особо много выигрыша даёт...

Alexander
30.08.2018
07:48:04
maybe (pure Nothing) foo someMaybeValue ?

Dmitry
30.08.2018
07:49:40
maybe (pure Nothing) foo someMaybeValue ?
Сойдёт на первое время ?

A
30.08.2018
07:58:09
https://www.amazon.com/gp/aw/d/1787281396

Вон оно чо

Го и в фп может

Народ, так что же такое фп?

Тут недавно набросы были, что вроде как рекурсия не нужна и фп это скорее теоркат, чем програмирование само по себе

Alexander
30.08.2018
08:03:55
все верно

фп это теоркат, потому что оно про функции а функции это стрелки

да и объекты легко представить себе как функции

а рекурсия и прочие штуки, ну они и в теоркате есть, но не на первом месте

Google
A
30.08.2018
08:05:00
То есть буква П в фп про теоркат?

Alexander
30.08.2018
08:05:21
да

A
30.08.2018
08:05:35
?

Alexander
30.08.2018
08:05:36
словосочетание "прикладная математика" тебе о чем то говорит?

Index
30.08.2018
08:05:51
Не могу понять, какой это уровень иронии

A
30.08.2018
08:06:05
?

Alexander
30.08.2018
08:06:09
я без иронии если что

программирование это раздел математики, фп это теоркат в рамках этого раздела

точнее группа разделов математики

A
30.08.2018
08:06:55
И тут Остапа понесло ?

Alexander
30.08.2018
08:08:23
я в общем то серьезно. Никого же не говорит что инженер занимается сопроматом а не проектирует мост

Index
30.08.2018
08:08:27
Математик видит аналогии, хороший математик видит аналогии между аналогиями, а самые лучше математики не могут отличить ФП и теоркат

Alexander
30.08.2018
08:08:45
а в чем отличие, кстати? ФП это прикладной теоркат

Страница 1428 из 1551