Cheese
думаешь, науке известно идеальное решение этой задачи?
Cheese
а оргигинальный тип строго такой?
Евгений
Ну там данные, не влияющие на построение дерева
Евгений
Единственное что -- сама иерархия дерева несёт информацию, а вот int'ы можно произвольно выбирать
Cheese
data Tree a = Tree Int a не очень похоже на дерево, если честно
Евгений
Тьфу
Евгений
data Tree a = Tree Int a [Tree]
Cheese
в детях одного узла инты могут быть одинаковыми?
Евгений
Это универсальный идентификатор
Cheese
уникальны в пределах дерева?
Евгений
Ага
IC
Звучит как IxSet
Aliester
а пойнтфри в хаскеле порицается с точки зрения стиля?
Евгений
Звучит как IxSet
Не понимаю как он может помочь, как мне иерархию восстановить по IxSet?
IC
Ты делаешь инстанс для своего дерева, а оно трекает индексы
IC
Или я с чем-то путаю... 🤔
Andrey
хочется странного.. нет ли случайно докеризованных ghc + cabal, чтобы билдить под линукс так, как это сделано в stack?
Cheese
может, образы от stack подойдут?
A64m
а официальный чем не подходит https://hub.docker.com/_/haskell/ ?
KLH
data Tree a = Tree Int a [Tree]
Интересно, не заготовку ли под некий dsl для rule engine'а пишете? С возможным ускорением поиска правил через hash map
Евгений
Нет, я круд пишу :(
Cheese
у нас есть инструмент для построения графика зависимости времени выполнения от какого-нибудь параметра?
Cheese
или надо просто criterion несколько раз запустить?
A64m
успели первую альфу 8.6 в июне сделать Sat Jun 30 21:26:34 UTC 2018 даже несколько часов в запасе еще оставалось
A64m
хаскель изменился до неузнаваемости, конечно > for_ [0, 10_000 .. 100_000] \i -> print i
кана
вот теперь заживем
Ilya
?
литералы для разрядов и доллар не нужен перед лямбдой
A64m
в сентябре, наверное
A64m
можно начинать ждать
Leonid 🦇
можно начинать ждать
Ещё ждём сноймана с лтс 8.4
A64m
Ещё ждём сноймана с лтс 8.4
это где-то через неделю обещали вроде
A64m
ну, конечно хорошо
Dmitry
Разделители разрядов мне тоже понравились
Dmitry
А доллар, видимо по \ определяется
A64m
главное изменение до неузнаваемости - тайплевел пролог больше не пролог
Cheese
Now you can do in Haskell without dollars! Успешно избегаем успех!
A64m
> Quantified class constraints have been proposed many years ago to raise the expressive power of type classes from Horn clauses to the universal fragment of Hereditiary Harrop logic. хорновские дизъюнкты - это пролог
A64m
А доллар, видимо по \ определяется
не только, это теперь тоже корректный хаскель replicateM_ 10 do print "bang!"
Dmitry
В конкретно этом случае с долларом как-то лучше: replicateM_ 10 $ print "bang!". Хотя это уже вкусовщина.
A64m
да всегда с долларом лучше
Dmitry
Зависит от уровня простоты человека
A64m
И что это даёт простым людям?
библиотеки получше
A64m
непосредственно "простой человек" эту фичу, наверное, использовать не будет
A64m
для простого человека есть значительная фича deriving via
A64m
также надо отметить, что альфа вроде не ломает все либы с дженериками, хотя соотвествующее решение (не ломать) еще комитет не прошло
Aliester
надеюсь в хаскеле не будет проблемы питона с 2/3
IC
Три мажора и давай до свидания.
IC
Но это проблема не в языке, а в либах.
IC
Хотя с ускорением релизов придётся поддерживать не на три назад, а на пять-шесть.
Alexander
Три мажора и давай до свидания.
да ладно поддерживается только последняя версия
Alexander
и в языке и в либах
IC
Ну не знаю, я 7.10 ещё не дропнул.
Alexander
и.е. оно на три версии обычно собирается, не более того
Alexander
ну баги в 7.10 никто исправлять не будет
Alexander
так же как баги в непоследней версии либ
IC
Я про то, что последняя версия либ обычно работает с непоследними компиляторами.
Alexander
собирается
Alexander
это да, но нужно понимать, что ни в либах ни в компиляторе не бекпортят фиксы
Aliester
вообще?
Алексей
Ну может кто-то сможет вспомнить редчайшие исключения
Alexander
в ghc было полтора бекпорта, когда старый перестал вообще работать на новых убунтах
A64m
да, бекпортили единичные фиксы для убунты и виндовс, когда все переставало работать вообще, в других случаях не бекпортили
A64m
ну и насчет продления собираемости либ - вот гхц так и продолжает политику собираемости двумя релизами и head, никто до 4 релизов не продлил после перехода на полугодовые. ну и это не первые полугодовые релизы гхц
A64m
а, да, ну и конечно фича 8.6 в которой самое загадочное - почему это не фича 5.00 Prelude> :doc map 'map' @f xs@ is the list obtained by applying @f@ to each element of @xs@, i.e., > map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn] > map f [x1, x2, ...] == [f x1, f x2, ...]