Previous Entry Share Next Entry
2016-01

Type system for numerics

Перечитал спеку Julia. Всё красиво-красиво. Некоторые вещи еще хорошо заходят, после K. Пошел читать ишшуи. "Пятачок, неси ружье!" Сколько corner cases, пиздец.

Вот интересно, можно ли вообще построить type lattice для сколько-нибудь нетривиального количества перпендикулярных свойств типов? (тип элемента матрицы, размерность матрицы, способ хранения матрицы например)

(Там обсуждают Кронекера, Иверсона и как уменьшить количество special кейсов для штук вроде Inf * Complex(0,0))

И типа что делать с генериками если оно взрывается когда матрицу населили какими-нибудь типами без обратного элемента..

Патамушо design space у меня в голове ж теперь еще шире после того как в K я могу написать "ABCD"="A" и получить (1;0;0;0)

akuklev подскажи, что почитать?

И интересно, можно ли программировать на языке у которого будет explicitly partial type system? Т.е. некоторые relations будут фэйлиться, в духе "is_subtype_of(A,B) = NaN", не тру, не фолс, а именно NaN? диспатч конечно будет безумный

This entry was originally posted at http://wizzard.dreamwidth.org/478559.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
justy_tylor November 20th, 2016
У них перетаскивание в рантайм-диспатч и систему типов всего того бардака оптимизации, который решается адским говнокодищем в компиляторах и СУБД. Натягивают на единую specificity, что-то работает, а потом corner cases лезут. Я это упоминал в http://justy-tylor.livejournal.com/241882.html

И ещё тот момент, что numerics плохо вписываются в иерархии типов, сделать автоприведение из uint8 в uint32 это ок, а вот назначить один подтипом другого уже некорректно.

wizzard0 November 21st, 2016
Ну да, именно что в иерархии. Там остаются только relations, и то не факт. Надо попробовать осилить Ludics, но я пока не осилил.

  • 1
?

Log in