А где есть полноценные hkt кроме хаскеля и f#?
Что-то мне кажется, что можно называть много языков с hkt, которые дают меньше гарантий чем раст, например скала или хаскель
Меньше гарантий в чем?
В деинициализации ресурсов (RAII), например
Вроде и это можно выразить, но как точно не скажу.
Для этого нужны линейные/аффинные типы, а от хкт пользы для безопасности мало
RAII — делался бы через вышеописанный terminate/2, но у него довольно замысловатая логика работы. (ой, а вы не про Эрланг)
Сходу нашлась имитация линейных http://functorial.com/Embedding-a-Full-Linear-Lambda-Calculus-in-Haskell/linearlam.pdf Но саму работу не читал.
Спасибо, потом почитаю, но внешне это выглядит как будто они заэнкодили совершенно другой язык в хаскеле и практически написали для него специальный компилятор
а у раста больше гарантий чем у хаскеля?)
У раста однозначно больше гарантий по части времени выполнения.
У раста нет гарантий по части времени исполнения — есть только «в среднем» большая предсказуемость
В F# нет HKT. 😂 Точно есть: Haskell, PureScript, Scala, Idris, Agda, Coq. Насчёт OCaml точно не помню.
Обсуждают сегодня