
Denis
31.08.2018
10:46:03
например dropWhile ты не напишешь с cata

Ilya
31.08.2018
10:47:45

Denis
31.08.2018
10:48:21
ну и инсерт не сделать через ana

kana
31.08.2018
10:59:16
Хм, оригинальной или остаточной?

Google

Denis
31.08.2018
10:59:58
catamorphism - общая модель структурной рекурсии
anamorphism - общая модель структурной корекурсии
paramorphism - общая модель примитивной рекурсии
apomorhism - общая модель примитивной корекурсии
в para - Tuple
в apo - Either
что тоже дуализмы
cata :: Functor f => (f b -> b) -> Fix f -> b
ana :: Functor f => (a -> f a) -> a -> Fix f
para :: Functor f => (f (Fix f, c) -> c) -> Fix f -> c
apo :: Functor f => (b -> f (Either (Fix f) b)) -> b -> Fix f
в apo Left ведеть себя также как и в
https://www.stackage.org/haddock/lts-12.8/extra-1.6.9/Control-Monad-Extra.html#v:loop
кстати как вариант, попробуйте написать через ana
toList :: forall a. RoseTree a -> [a]
ну перед этим представив RoseTree через Fix

Ilya
31.08.2018
12:06:47
Я писал помню, для разных вариантов обхода
Хотя подожди, зачем тут вообще RoseTree через фикс представлять?

Denis
31.08.2018
12:08:43

Ilya
31.08.2018
12:09:26
ana должна билдить структуру, у тебя на выходе список, значит речь идёт об ana для списка, то есть unfoldr
Значит не имеет смысла RoseTree переписывать через Fix, функтор для ana тут ListF, а не RoseTreeF

Denis
31.08.2018
12:15:04
Ты потеряешь один элемент из дерева

Google

Ilya
31.08.2018
12:16:32
Ладно, я писал не для Tree a, я писал для Forest a
Вспомнил
Что практически одно и то же, но Forest a может быть пустым, да:)
Forest который отсюда http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Tree.html

kana
31.08.2018
12:29:24
а то вроде ана, а функтор на вход

Denis
31.08.2018
12:31:22

kana
31.08.2018
12:32:41
toList :: Fix (RoseTreeF a) -> [a]
то есть мы принимаем фикс на вход по заданию, а ана отдает, собственно про это я и спросил, мол мб ты имеешь в виду ану для списка

Denis
31.08.2018
12:34:52
нет же
свернуть RoseTree в список через анаморфизм

kana
31.08.2018
12:35:50
ты не понял вопрос
ana :: Functor f => (a -> f a) -> a -> Fix f
какой F ты хочешь увидеть в решении?

Ilya
31.08.2018
12:36:50
Просто лишняя была добавка "представьте RoseTree через Fix"

kana
31.08.2018
12:37:52
да, это запутывает
типа на самом деле реализация RoseTree вообще не важна задача оказывается

Denis
31.08.2018
12:38:15

kana
31.08.2018
12:38:28

Denis
31.08.2018
12:39:18

Google

kana
31.08.2018
12:39:54
не отвечай вопросом на вопрос, я сейчас не решение генерю, а УСЛОВИЕ хочу понять

Denis
31.08.2018
12:40:36

kana
31.08.2018
12:40:49
потому что в условии ты сказал про розтри через фикс, что подразумевает, что мы должны работать с функтором RoseTreeF
но потом ты говоришь про ану, которая генерит структуру, а сгенерить нужно список
то есть я так понимаю ты хочешь ListF в качестве функтора для аны, а не ReseTreeF

Denis
31.08.2018
12:41:27
RoseTree a -> ListF a (RoseTree a)

kana
31.08.2018
12:41:51
тогда зачем вообще было нужно уточнение про фикс?
что фикс меняет тут?
для дерева

Denis
31.08.2018
12:42:15
а того что и RoseTree тоже надо выразить через Fix

kana
31.08.2018
12:42:30
а зачем?
костяк решения в ане
в ане RoseTreeF вообще никак не затронется

Denis
31.08.2018
12:43:04
ок, пусть будет так) но ана не будет работать)

Ilya
31.08.2018
12:43:22

Denis
31.08.2018
12:43:59
хочешь сложнее?)
hylo вот тут и RoseTreeF и ListF
хочу чтобы генерило дерево и переводило список
(вот просто хочется)

Ilya
31.08.2018
12:44:24
Снова нужно выбрать, TreeF или ListF у нас, но не оба
Нужна функция с констрейнтом (Functor f, Functor g), если хочется сразу два функтора чтоб "работали"
Наверное в recursion-schemes есть что-нибудь такое, но я в этом пакете не шарю

Google

Ilya
31.08.2018
12:49:04
Может быть это, но хз

Sergey
31.08.2018
12:51:26
Если задание - про преобразование RoseTree = Fix RoseTreeF в список, то скорее это сворачивание cats, а не ana. Не?
cata*

Denis
31.08.2018
12:52:40
это если базовый функтор одинаков, то да, можно все через рефикс делать
например
list1 -> list2
churchList -> list

Admin
ERROR: S client not available

Denis
31.08.2018
12:53:27

Ilya
31.08.2018
12:55:50

Denis
31.08.2018
12:56:04
@Masteroid вот тут у них общий базовый функтор
https://github.com/xgrommx/purescript-experiments/blob/master/src/Main.purs#L46
https://github.com/xgrommx/purescript-experiments/blob/master/src/Peano3.purs#L10
https://github.com/xgrommx/purescript-experiments/blob/master/src/NaturalC.purs#L32
естественное преобразование for free

Ilya
31.08.2018
12:59:51

Sergey
31.08.2018
13:03:29
Так, значит розовое дерево не разворачивается с помощью ana в список Fix ListF потому что теряется вершинный элемент.

Ilya
31.08.2018
13:04:42
Ой а я тоже задачку вспомнил, раз пошла такая пьянка

Sergey
31.08.2018
13:04:42
Или наоборот, всё кроме вершинного

Ilya
31.08.2018
13:06:02
Сверните через cata дерево в список: 1) обойдя дерево в глубину (ин-ордер, например) 2) обойдя в ширину (левел-ордер)

Denis
31.08.2018
13:07:35

Ilya
31.08.2018
13:07:51

Denis
31.08.2018
13:08:11

Google

Ilya
31.08.2018
13:08:19

Denis
31.08.2018
13:08:33
какая-нибудь хисто уже

Ilya
31.08.2018
13:08:33
Катой не получится

Denis
31.08.2018
13:10:29
а дерево то какое кстати?)

Ilya
31.08.2018
13:13:49
То же самое, Tree a = Node a [Tree a]

A64m
31.08.2018
14:30:37
Комитет: ну что, вот тут и тут поправить в описании и принимаем!
Iavor Diatchki: ну я не знаю, я на необитаемом острове с одним телефоном, смогу ли я поправить что-то на гитхабе?
Iavor Diatchki комментирует другой пропозал на гитхабе, все больше ничего не делает.

Oleg
31.08.2018
14:34:13
А что известно про SequentCore? Из него вытащили join points и больше развивать не будут?

A64m
31.08.2018
14:35:04
ну, в гхц не будут, видимо

Oleg
31.08.2018
14:35:54
А линтипы хотят своё ядро?
И как они будут взаимодействовать с Dependent?

A64m
31.08.2018
14:37:58
у меня недостаточная компетенция в этом вопросе, но, как я понял, у эйзенберга особых ожиданий каких-то проблем со взаимодействием нет

Oleg
31.08.2018
14:38:47
интересно

Alexander
31.08.2018
15:41:11
неизвестно
насколько я знаю, как-то будут

Denis
31.08.2018
18:00:03
как же все это угрюмо выглядит
https://github.com/Engelberg/instaparse/blob/master/src/instaparse/abnf.cljc