@haskellru

Страница 1430 из 1551
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
Через unfoldr то как раз легко
Как выглядит твое дерево? Это не пустая структура как и nonemptylist

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

Ana не развернет непустую структуру в пустую
toList :: Tree a -> [a] toList (Node a ts) = a : unfoldr f ts Вот в таком виде короче можно сделать. Но это не чистая ana, да

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
Просто лишняя была добавка "представьте RoseTree через Fix"
догадываешься на каком условии мы теряем элемент?

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
Если задание - про преобразование RoseTree = Fix RoseTreeF в список, то скорее это сворачивание cats, а не ana. Не?
кто сказал про свертку? я написал ясно и понятно, развернуть (анаморфизм)

Ilya
31.08.2018
12:55:50
это если базовый функтор одинаков, то да, можно все через рефикс делать например list1 -> list2 churchList -> list
А, понял, спасибо. То есть разные способы получать из базового функтора рекурсивные структуры, не только Fix. И это функция позволяет между ними переключаться.

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

А, понял, спасибо. То есть разные способы получать из базового функтора рекурсивные структуры, не только Fix. И это функция позволяет между ними переключаться.
если 2 структуры написаны через один базовый функтор, то всегда можно пейти от одной к другой довольно просто

естественное преобразование for free

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) обойдя в ширину (левел-ордер)

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

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