Size: a a a

2021 June 08

к

кана in Haskell
void сюда передать нельзя
источник

к

кана in Haskell
но вы говорите про какие-то аргументы функции
источник

к

кана in Haskell
я говорю про сам тип 0 как тип значения
источник

к

кана in Haskell
тип null это тип, у которого значение null

если бы синглтонные типы в языках описывались бы синтаксисом Singleton X, то было бы

x :: Singleton Null
x = Null

y :: Singleton Undefined
y = Undefined

z :: Singleton 1
z = 1

но в тс Singleton просто опускается

const x: null = null;
const y: undefined = undefined;
const z: 1 = 1;
const t: [1, 2] = [1, 2];
const y: { a: 1, b: true } = { a: 1, b: true };
источник

JS

Jerzy Syrowiecki in Haskell
аргумент на уровне типов, да. без этого у всех синглтонов Хаскеля нет смысла
источник

к

кана in Haskell
а в тс все не так
источник

JS

Jerzy Syrowiecki in Haskell
ну это не реальный код
источник

к

кана in Haskell
более чем реальный
источник

JS

Jerzy Syrowiecki in Haskell
и это не настоящий код. так не пишут
источник

к

кана in Haskell
я работал на тайпскрипте пару лет
источник

к

кана in Haskell
я знаю как пишут код на тайпскрипте
источник

к

кана in Haskell
у тебя есть решетка на типах (|, &, unknown, never)

нули
a | never = a
a & unknown = a

сингулярности
a | unknown = unknown
a & never = never

коммутативность
a & b = b & a
a | b = b | a

ассоциативность
(a | b) | c = a | (b | c)
(a & b) & c = a & (b & c)

дистрибутивность
(a | b) & c = (a & c) | (b & c)

идемпотентность
a | a = a
a & a = a

поглощение
a | (a & b) = a
a & (a | b) = a

и у тебя есть синглтонные типы на значения
и нет возможности создавать номинальные типы, только алиасы (но на самом деле добавили фичу не так давно и для номинальных вроде бы)
и получаются типы вида

type boolean = true | false;
type number = 0 | 1 | -1 | 0.1 | ...;
type x = boolean | number
это ровно то же самое что
type x = true | false | 0 | 1 | -1 | ...
источник

[

[BRM]White Rabbit in Haskell
Все проблемы из за совместимости с жс
источник

[

[BRM]White Rabbit in Haskell
Вот так мы в очередной раз доказали, что жс это зло
источник

MK

Maxim Koltsov in Haskell
что, дать Юре РО за оффтоп?)
источник

G

GNU/Vsevolod in Haskell
a | any = any
a & any = any
источник

K

Kir in Haskell
Так себе решётка получилась
источник

к

кана in Haskell
any это просто команда отключения тайпчекера
источник

G

GNU/Vsevolod in Haskell
Что за решётка?
источник

к

кана in Haskell
источник