Size: a a a

2021 October 15

SG

Serge S. Gulin in Haskell Start
В части 2 https://blog.jle.im/entry/introduction-to-singletons-2.html рассказывается как выполнить преобразование обратно к типу-сумме, и это хорошо укладывается в пример. Кажется начинаю понимать.
источник

SG

Serge S. Gulin in Haskell Start
Пока общие впечатления такие: надо делать доклад на spb fprog, где показать то, что я тут пытаюсь сделать, и в конце показать как наглядно и элегантно тоже самое делается в TypeScript буквально 3-5 строками. 🙂 Такая полезная вещь глазами разработчика на Haskell видится как какое-то непонятное усложнение, хотя оно несёт в себе глубокий смысл, наделяя систему типов подробностями о работе предметной модели.
источник

[

[BRM]White Rabbit in Haskell Start
У тайпскрипта и хаскеля глубоко разные системы типов
источник

[

[BRM]White Rabbit in Haskell Start
Если их совмещать, всё сломается
источник

SG

Serge S. Gulin in Haskell Start
Я понимаю разницу хотя бы в том, что у последнего она структурная.
источник

SG

Serge S. Gulin in Haskell Start
Однако какие бы разными они не были задача в том, чтобы в системе типов отразить бизнес-процессы, чтобы система типов помогала в решении бизнес-задач верхнего уровня,а не только помощь в написании sql запросов да ответов сервера.
источник

SG

Serge S. Gulin in Haskell Start
> One limitation in Haskell is that there is no actual link between the type DoorState and its values with the kind DoorState with its types. Sure, the constructors have the same names, but the language doesn’t actually link them together for us.

Вот теперь я полнее понимаю смысл вашего тезиса. 🙂
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Функции из значений в значения писать на Хаскеле легко.
Из типов в значения - тоже (тайпклассы, жеж).
Из типов в типы уже более неудобно, но терпимо.
Из значений в типы - сложнее всего.
источник

С

Савелий in Haskell Start
где про это почитать?
источник

AP

Aleksei (astynax) Pi... in Haskell Start
В TS ещё и сабтайпинг есть, насколько я помню, не только структурщина
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Ну и TS сильно тяготеет к структурной типизации, а Хаскель наоборот - к номинальной
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Here are some differences:
- Sub-typing: Typescript has sub-typing, Haskell does not.
- Higher-kinded types: in Typescript, higher-kinded types are very limited -- you can only quantify over concrete types. In Haskell, you can quantify over any kind.
- Higher-rank types: Typescript is entirely rank-1 -- quantified types cannot be used as arguments. Haskell supports arbitrary rank types.
источник

AP

Aleksei (astynax) Pi... in Haskell Start
источник

С

Савелий in Haskell Start
спасибо!
источник

GP

Gleb Patsiia in Haskell Start
и где то посерединке(меж ТС и хаскель) стоит ocaml (там тоже нет higher-kind), так что для примера выше придется наплодить
type b
type c
type d
и только потом уже gadt
источник

AP

Aleksei (astynax) Pi... in Haskell Start
а ещё в окамле есть сабтайпинг - тоже сходство с TS
источник

SG

Serge S. Gulin in Haskell Start
Сабтайпинг? А можете немного раскрыть что это и как с этим столкнуться?
источник

SG

Serge S. Gulin in Haskell Start
(у меня есть интиутивные догадки, но хотелось бы убедиться в их корректности соответствия тому, что вы называете сабтайпингом)
источник

GP

Gleb Patsiia in Haskell Start
объектные всякие поделки как в ts чтобы делать
источник

AP

Aleksei (astynax) Pi... in Haskell Start
наследование, проще говоря
источник