gavr_sas
А как резолвить body функций у которых должен быть выведен return type? допустим ситуация fun main() { sas() } fun sas() = 42 шо делать как быть: 1) мы не можем заранее пройдясь по всем функциям узнать точные их сигнатуры, ведь они не полные 2) мы не…
3 самый ахуенный наш любимый ХиндиМинди ^_^
Hindley–Milner
1) собираем все декларации функций переменных в одну бог шлепа структуру, обычно изза этого в таких языках есть жесткое требование к определению до использования F# OCalm(форвард декларейшон как в С)
2) Присваиваем переменным воображаемые временные типы, аля тайп холы ⭕️ t0 t1 t2...
3) Генерим уравления/ограничения, исходя из контекста, например обычно в H&M нет перегрузки операторов, и + всегда означает 2 числа, из этого можно легко вывезти 2 любых t1 + t2, еще простой пример fun f(x), f(y), => x == y, аля аргумент должен быть того же типа что параметр функции
4) Унификация, ну это я уже выше описал по сути, решаем все ети уровнения, если решение найти невозможно — выдаем ошибку типа
Hindley–Milner
1) собираем все декларации функций переменных в одну бог шлепа структуру, обычно изза этого в таких языках есть жесткое требование к определению до использования F# OCalm(форвард декларейшон как в С)
2) Присваиваем переменным воображаемые временные типы, аля тайп холы ⭕️ t0 t1 t2...
3) Генерим уравления/ограничения, исходя из контекста, например обычно в H&M нет перегрузки операторов, и + всегда означает 2 числа, из этого можно легко вывезти 2 любых t1 + t2, еще простой пример fun f(x), f(y), => x == y, аля аргумент должен быть того же типа что параметр функции
4) Унификация, ну это я уже выше описал по сути, решаем все ети уровнения, если решение найти невозможно — выдаем ошибку типа
gavr_sas
что будет если скрестить все механики интерстеллара и Довод а получится типичный марио спидран https://youtu.be/d45VMvi93tQ?t=981 серьезно это самый интересный разбор механик что я видел, литерали паралельные вселенные!
пересматриваю, все еще лучшее объяснение спидран техники
constexpr может быть как runtime так и ct
consteval is ct only
сука, это помойму какой то апогей дизайна, понятно что хуже только perl, но все же, назвать штуки практически наоборот
consteval is ct only
сука, это помойму какой то апогей дизайна, понятно что хуже только perl, но все же, назвать штуки практически наоборот
😨1
gavr_sas
Очередной уверенный сиподобный яп, на этот раз борроу чеккер, ннно в отличии от раста при фейле он просто подменяет рефернс смарт поинтером, помойму nim делает нечто очень похожее https://www.helix-lang.com/ 320 звездочек
Очередной уверенный сиподобный яп(как я их всех нинавижу), на этот раз для разнообразия никаких особенностей
https://deen-docs.vercel.app/
https://github.com/mealet/deen
https://deen-docs.vercel.app/
https://github.com/mealet/deen
😁2
Forwarded from kolpotraż bananów
C++ exists to create jobs and keep dumbasses away from money.
🔥2
неочевидная весщъ
вот казалось бы функции и функции
аннет, вторая здесь это топ левел константное значение, аргументов то нет!
а как же сделать все таки функцию, не принимающую аргументов
а надо обернуть все тело в лямбду и добавить один фальшифый _ аргумент, теперь это как бы переменная-лямблда поэтому ее можно вызывать как функцию без аргументов
либо еще один вариант, в комментариях
вот казалось бы функции и функции
аннет, вторая здесь это топ левел константное значение, аргументов то нет!
а как же сделать все таки функцию, не принимающую аргументов
а надо обернуть все тело в лямбду и добавить один фальшифый _ аргумент, теперь это как бы переменная-лямблда поэтому ее можно вызывать как функцию без аргументов
либо еще один вариант, в комментариях
❤4
Forwarded from GNOME News
This media is not supported in your browser
VIEW IN TELEGRAM
Джулиан Спарбер делится рабочим прототипом мерж реквеста для поддержки нескольких курсоров в Reflection (ранее Aardvark), локального текстового редактора для GNOME.
🤣2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
не ну LSP это конеш прикольно
- склонил чужой Vala IDEA плагин
- поменял там одну строчку пути к своему exeшнику
- готово, поддержка для нового языка в IDEA
- склонил чужой Vala IDEA плагин
- поменял там одну строчку пути к своему exeшнику
- готово, поддержка для нового языка в IDEA