Alexander
а применять в инфиксной
A64m
но синтаксис [] перегружаемый
Зигохистоморфный
ну как бы
data List a = Nil | a `Cons` (List a)
Alexander
ну не настолько чтобы в конструкторе написать [a] ?
parket
В общем. Спасибо. Я то думал, что тайпконструкор может иметь вид Xx*, где x - [a-zA-Z], X - [A-Z]
A64m
ну, в определении типа не написать конечно, но для конструкции значений он перегружается. вот (,) нет
Alexander
зажкл, что только :
Alexander
никаких юникодов : (
parket
Ну, я так понимаю ограничения такие же, как на оператор, но должен начинаться с :
Alexander
вроде да
parket
Т.е. (:aaa:) - не валидно
Alexander
да
parket
Интересно. Спасибо. Не знал. :)
parket
Получается, что [] - тоже не валидное имя для конструктора :)
parket
А, что такое [a], вообще ХЗ.
parket
Магия... Как она есть.
A64m
[] спецсинтаксис, конечно, но можно объявить свой список, для которого он доступен (он перегружаемый), вот свои туплы не написать
Alexander
да, [] - магия
Alexander
собственно что я и написал сначала
Alexander
(почти сначала)
Alexander
можно использовать для всего что умеет fromList
parket
А можно, пример, пожалуйста. А то я, видать, это тоже упустил.
a66ath
https://ghc.haskell.org/trac/ghc/wiki/OverloadedLists
Alexander
data Tuple a = Tuple a a
instance FromList Tuple where
fromList [a,b] = Tuple a b
fromList _ = error "I'm sorry"
A64m
> import qualified Data.Set as Set
> :set -XOverloadedLists
> [1,2,3] `Set.intersection` []
fromList []
Alexander
если честно вживую я не то, чтобы много видел такого, с Set да Vector если только
A64m
в паттернах тоже работает
> case Set.empty of [] -> "OK"
"OK"
Cheese
λ> pattern a :- b = (a, b)
λ> ["input" :- 42, "output" :- 24] :: Map String Int
Cheese
для тех, кто страдает без специального синтаксиса для словарей
Sam
/stat@combot
Combot
combot.org/chat/-1001043143583
A64m
лучше бы от отсутствия нормальных словарей страдали
A64m
глядишь, кто-нибудь и накостылил бы
Евгений
А что не так с hashmap?
Alexander
тормозят?
A64m
с хешмапом не так то, что он сделан так, что элементы хранимые не группируются одним блоком, т.е. их нельзя анбоксить
A64m
так что там ссылок в 16 раз больше, чем могло бы быть, что в случае большого кол-ва элементов совсем не весело
Евгений
В том смысле, что он хранит массив ссылок на элементы?
A64m
да хуже, если бы он именно массив ссылок на элементы хранил, анбоксед/строабл версию можно было бы за верчер накостылить, но там сама структура этого HAMT выбрана такая, что ссылки на элементы не группируются как надо
A64m
также, если не ограничиваться словарями, никто пока RRB-дерева не накостылил, хотя это модно-молодежно сейчас
A64m
удивительно, как мало хаскелисты стараются одним куском данные хранить, при таком-то ГЦ убогом
parket
A64m
ну для сделанного академиками на коленке он норм, но в наше суровое время во всяких явах и дотнетах ГЦ из коробки "псевдоконкурентные", т.е. у них фаза стоп-мир покороче чем вся сборка
A64m
в гхц это не так
Евгений
Sam
Sam
привет ребята, может так лучше шернут код?😃
Кабачок
Давай лучше текстом, чтобы каждый любовался своим шг
Евгений
Раньше в @ц.ж.р прямо в топике были ссылки на пейстбины
Alexander
я думал wgetpaste у всех стоит
Кабачок
-
Alexander
кто-нибудь из he research запилите нам декодилку картинок
Alexander
hex
Danila Matveev
"стоп-мир", это глобал лок так в гц называется?
это способ гц избежать проблем с отслеживанием ссылок (приложение живое и меняется)
все потоки приложения останавливаются пока сборщик ведет очистку
для jvm не совсем так
есть к примеру старый parallel gc, который также стопает приложение на всю сборку
но у него профит в низком оверхеде относительно прочих, что хорошо скахзывается на пропускной способности
Евгений
> остановить все потоки
Ну это и есть глобал лок
Евгений
А чо, без него никак вообще?
Danila Matveev
никак
Danila Matveev
исхитряются по разному, чтобы уменьшить фазы stop-the-world, но они не избежны
Danila Matveev
ну и тут трейд офф footprint-throughput-latency
Alexander
в общем-то в haskell тоже throughput oriented gc
Alexander
с весьма прикольными штуками, но latency страдает, т.к. major gc stop the world и при чем хорошо так
Alexander
вон гоферы за это haskell не любят
Quet
а задержки победили на больших хипах?
Alexander
задержки есть, есть методы улучшеиня, много, но для low latency это не будет работать все равно
parket
А в статичный байткод это не компилится? Без GC?
Quet
ну условно какой-нибудь хип в 30гб -- какие там задержки будут?
Alexander
там нужны инкрементальные сборщики, которые будут тормозить и unbounded, но зато low latency
Alexander
@quetzal на fby у марлоу спроси если там будешь
Влод
Alexander
у меня таких программ не было, точнее было, но если там 30Гб то все плохо
Влод
mark and sweep
Quet
на fby не буду ) в москве вот на fpconf наверн буду
Alexander
на fpconf не будет marlow
Alexander
а на fby то он будет?
Влод
просто профит не большой
Alexander
чота его планировали пригласть но не знаю чем кончится
Quet
да почему 30 плохо? сейчас на относительно дохлых машинах памяти 128 и больше
Alexander
не знаю плохо ли, у меня все что нужно вмещалось <10