Size: a a a

Compiler Development

2020 February 03

А

Алексей in Compiler Development
главное что возможно
источник

AH

Ayrat Hudaygulov in Compiler Development
Evgenii Moiseenko
в чем вопрос, то ?
можно ли все типизировать как Any?
да, можно, но какие гарантии вам тогда такая система типов даст ?
вопрос был - “существует ли программа на безтиповом языке, невыразимая в типизированном языке”
как пример был вброшен \x -> x x, но я думаю что с индуктивными типами она выразится
источник

AK

Andrei Kurosh in Compiler Development
по-моему этот пример отлично иллюстрирует разницу между математиками и инженерами. если есть corner case, который система типов не позволяет выразить, математик скажет "система не годится" и пойдет изобретать новую, а инженер использует any :)
источник

YS

Yuriy Syrovetskiy in Compiler Development
\x . x x

в С++, например,

cout << typeid([](auto x){return x(x);}).name();

выводит Z4mainEUlT_E_
источник

YS

Yuriy Syrovetskiy in Compiler Development
Ayrat Hudaygulov
ну если можно, то я бы посмотрел на тип x
вот, посмотрите ^
источник

AH

Ayrat Hudaygulov in Compiler Development
Yuriy Syrovetskiy
\x . x x

в С++, например,

cout << typeid([](auto x){return x(x);}).name();

выводит Z4mainEUlT_E_
занятно что плюсы это проглатывают изи)
источник

EM

Evgenii Moiseenko in Compiler Development
Yuriy Syrovetskiy
\x . x x

в С++, например,

cout << typeid([](auto x){return x(x);}).name();

выводит Z4mainEUlT_E_
oh shit, here we go again
источник

YS

Yuriy Syrovetskiy in Compiler Development
Ayrat Hudaygulov
занятно что плюсы это проглатывают изи)
там статическая утиная типизация + перегружаемая аппликация
источник

AK

Andrei Kurosh in Compiler Development
тайпскрипт тоже справляется вообще без напряга
источник

AK

Andrei Kurosh in Compiler Development
источник

YS

Yuriy Syrovetskiy in Compiler Development
Yuriy Syrovetskiy
\x . x x

в С++, например,

cout << typeid([](auto x){return x(x);}).name();

выводит Z4mainEUlT_E_
и вот так запустить можно

auto xx =
   [](auto x) -> decltype(x(x)) { return x(x); };
struct F {
   int operator() (auto _) { return 0; }
} f;
int main() {
   cout << xx(f) << endl;
   return 0;
}

g++ -fconcepts -std=c++17 a.cxx && ./a.out
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
рекурсивные алиасы добавили недавно
источник

AK

Andrei Kurosh in Compiler Development
Зигохистоморфный Препроморфизм
рекурсивные алиасы добавили недавно
да, но факт - это работает
источник

AH

Ayrat Hudaygulov in Compiler Development
Это кстати похоже на индуктивный тип
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
\x -> x x имеет даже комбинаторное название и это M
источник

OS

Oleg Stotsky in Compiler Development
Алексей
а почему её нельзя выразить в статически типизированном языке?
источник

OS

Oleg Stotsky in Compiler Development
Ну это в просто типизированном лямбда исчислении правда
источник

OS

Oleg Stotsky in Compiler Development
Не знаю, что в других системах типов
источник

А

Алексей in Compiler Development
в других всё норм
источник

OS

Oleg Stotsky in Compiler Development
В каких, например?
источник