Size: a a a

Compiler Development

2020 February 01

M

MaxGraey in Compiler Development
В JS я могу в массив положить любое колличество разных типов
источник

AV

Alexander Vershilov in Compiler Development
Вот строка кода, котороую я процитировал, в ней представлен кортеж и следующая в которой представлен массив
источник

AV

Alexander Vershilov in Compiler Development
Я просто не знаю, мне нужно объяснять как это работает и почему?
источник

M

MaxGraey in Compiler Development
Vector<Dynamic> это конечно хорошо, но как только я захочу положить туда скажем кортеж из (Dynamic, Dynamic) мне придется расщирять определения этого типа
источник

А

Алексей in Compiler Development
Не понял где там динамика то?
источник

AV

Alexander Vershilov in Compiler Development
Если вы хотите поддерживать в языке кортежи, то вы сделаете Tuple Int (Vector Dynamic)
источник

AV

Alexander Vershilov in Compiler Development
Как вариант вы договоритесь, что они представляются как словарь с ключами "1","2", "3"
источник

E

Eugene in Compiler Development
Алексей
Не понял где там динамика то?
Ela combines strict and lazy evaluation, dynamic typing and features, which are normally adopted by statically typed languages, such as algebraic data types and Haskell style type classes.
источник

А

Алексей in Compiler Development
Eugene
Ela combines strict and lazy evaluation, dynamic typing and features, which are normally adopted by statically typed languages, such as algebraic data types and Haskell style type classes.
Странно в общем
источник

AV

Alexander Vershilov in Compiler Development
Но это правила вашего языка, в "питоне", у вас есть кортежи и есть подобный конструктор, в "пхп" нет, и вы пользуетесь словарём. Но основной смысл остаётся - любое значение в динамическом языке представляется как подобная структура
источник

AV

Alexander Vershilov in Compiler Development
В отличии от, скажем с++, где вам радостно может прийти набор байт и это можно интепретировать как какой-то конкретный тип, в динамическом языке любой набор байт типом не будет. Он должен быть представлен в обобщенной форме
источник

E

Eugene in Compiler Development
Алексей
Странно в общем
это довольно старый язык, как минимум лет 10 назад  он уже был, кто-то из RSDN его пилил
источник

M

MaxGraey in Compiler Development
В том то и дело, что прилется все структуры конвертировать в HashTable. А теперь возьмем люмбду или функцию например, Где кстати в том Variant Func тип?
источник

M

MaxGraey in Compiler Development
Короче, я хочу сказать, что каждый раз вам придется совершенствовать свой тип Variant =)
источник

AV

Alexander Vershilov in Compiler Development
MaxGraey
Короче, я хочу сказать, что каждый раз вам придется совершенствовать свой тип Variant =)
С этим спорить не собираюсь 🙂
источник

M

MaxGraey in Compiler Development
В динамически типизированных ЯП вам этого делать не придется
источник

AV

Alexander Vershilov in Compiler Development
Ну да, там это уже сделано с какой-то степенью удобства
источник

А

Алексей in Compiler Development
Eugene
это довольно старый язык, как минимум лет 10 назад  он уже был, кто-то из RSDN его пилил
Он ещё и выглядит как хаскель, никаких динамических штук я там вообще не увидел. Например, могу ли я алгебраический тип в рантайме создать?
источник

M

MaxGraey in Compiler Development
В динамическом типе вы пожете динамически удалить или добавить поле
источник

AV

Alexander Vershilov in Compiler Development
Вот тут проблемы не вижу
источник