Size: a a a

2020 May 03

D

Dudka in // CIPHERNET
ограничивают возможные в ахмирово? – только раста и старательно отмалчивалось. здесь вместе четыре непрерывных линии, потом знакомый звук, неожиданный сюжетный ход вещей. староста на дельфинах
источник

G

Gymmasssorla in // CIPHERNET
Vyacheslav Goma
крч типы не пораждают код, типы ограничивают возможные значения в коде, типы в компайлтайме ограничат значения возможные в рантайме, если посчитать тот же факториал на типах и ограничить что от инта останется только инт с 1 значением и выведешь в рантайме, то получишь вычисления/бизнес-логику в компайлтайме на типах
угу, определение в TAPL
источник

AB

Artöm Bakri Al-Sarmi... in // CIPHERNET
Vyacheslav Goma
крч типы не пораждают код, типы ограничивают возможные значения в коде, типы в компайлтайме ограничат значения возможные в рантайме, если посчитать тот же факториал на типах и ограничить что от инта останется только инт с 1 значением и выведешь в рантайме, то получишь вычисления/бизнес-логику в компайлтайме на типах
Этот пример бесполезная дроч типов
источник

VG

Vyacheslav Goma in // CIPHERNET
ну лучше примеры - списки на типах которые не позволяют в рантайме взять элемент если список пустой
источник

G

Gymmasssorla in // CIPHERNET
+
источник

G

Gymmasssorla in // CIPHERNET
Artöm Bakri Al-Sarmini
Этот пример бесполезная дроч типов
+
источник

G

Gymmasssorla in // CIPHERNET
надо в компиле таме посчитать - просто сделай чистую функцию
источник

G

Gymmasssorla in // CIPHERNET
ге паоь пмозги
источник

VG

Vyacheslav Goma in // CIPHERNET
еще лучше пример polysemy который не позволяет скомпилировать программу без корректной обработки всех эффектов в бизнес-логике
источник

VG

Vyacheslav Goma in // CIPHERNET
сделано на типах
источник

G

Gymmasssorla in // CIPHERNET
Vyacheslav Goma
еще лучше пример polysemy который не позволяет скомпилировать программу без корректной обработки всех эффектов в бизнес-логике
еще один пример - верифицированные автоматы, у которых состояние в типе
источник

G

Gymmasssorla in // CIPHERNET
мне почему-то кажется, что с refinement types все  таки легче в разы чем с зависимой типизацией
источник

VG

Vyacheslav Goma in // CIPHERNET
легче, но судя по гуглу они не могут использовать любые функции для ограничения значений типа
источник

G

Gymmasssorla in // CIPHERNET
Vyacheslav Goma
легче, но судя по гуглу они не могут использовать любые функции для ограничения значений типа
хм
источник

G

Gymmasssorla in // CIPHERNET
когда я F* смотрел, там может быть использована любая булева функция
источник

G

Gymmasssorla in // CIPHERNET
и даже больше кстати, булевая частный случай
источник

VG

Vyacheslav Goma in // CIPHERNET
тогда надо больше копать, как в F* сравнить типы такие?
источник

G

Gymmasssorla in // CIPHERNET
Vyacheslav Goma
тогда надо больше копать, как в F* сравнить типы такие?
хз
источник

G

Gymmasssorla in // CIPHERNET
солвер сравнивает наверное
источник

VG

Vyacheslav Goma in // CIPHERNET
The underlying difference can be summed up as follows: Refinement types let you form subtypes of other types. This is important for two reasons. First, a full dependent type system, like in Idris, lets you write down all sorts of arbitrary inductive types, not just constrain other types. And second, refinement types are subtypes of the type they refine, and they have a subtyping relationship with each other.
источник