Size: a a a

Compiler Development

2020 February 01

SM

Sailor Moon in Compiler Development
я что то такое нагуглил https://github.com/chrisdone/dynamic
выглядит интересно, не знал что хаскель так умеет :)
источник

AV

Alexander Vershilov in Compiler Development
Есть ещё Data.Dynamic, но это слегка другое
источник

AV

Alexander Vershilov in Compiler Development
https://github.com/chrisdone/dynamic/blob/master/src/Dynamic.hs#L79-L86 - именно то о чём я говорил
источник

AV

Alexander Vershilov in Compiler Development
Создаётся universe тип (общее представление для любого значения "динамического типа"), которое отличается тегом. В haskell тег это просто номер конструктора
источник

M

MaxGraey in Compiler Development
Такое может любой типизированный ЯП с taggad и даже без tagged unions. И называть это Dynamic имхо некорректно. Это Variant. Такое было еще в бейсике, такое есть в C++ (std::variant), да собственно в любом яп где есть десериализация JSON к примеру
источник

AV

Alexander Vershilov in Compiler Development
Корректно
источник

AV

Alexander Vershilov in Compiler Development
Да, такое может любой ЯП
источник

M

MaxGraey in Compiler Development
Alexander Vershilov
Корректно
Я могу использовать любой прямо тип там? Нет, только вполне ограниченный сабсет
источник

AV

Alexander Vershilov in Compiler Development
В динамическом языке ты не можешь использовать любой тип прямо там
источник

AV

Alexander Vershilov in Compiler Development
Т.к. все типы описываются одним фиксированным сабсетом
источник

M

MaxGraey in Compiler Development
Alexander Vershilov
В динамическом языке ты не можешь использовать любой тип прямо там
могу)
источник

AV

Alexander Vershilov in Compiler Development
Не можешь, у тебя вообще нет "любого типа"
источник

AV

Alexander Vershilov in Compiler Development
У тебя есть единственный тип строящийся из этого variant или dynamic, и других нет
источник

M

MaxGraey in Compiler Development
Советую почитать чем отличается тот же std::variant от std::any с C++. Многое проясниться
источник

AV

Alexander Vershilov in Compiler Development
Печалька..
источник

M

MaxGraey in Compiler Development
теггированный тип c ограниченными вариантами мало имеет чего общего с динамической типизацией
источник

AV

Alexander Vershilov in Compiler Development
Я знаю чем отличается std::variant от std::any, и чем отличается Dynamic приведённый выше от Data.Dynamic (hint: ровно тем, же чем std::varaint от std::any). При этом я вам написал совсем про другое
источник

AV

Alexander Vershilov in Compiler Development
Много, "динамический" тип в любом динамическом языке реализован как тегированный тип с ограниченными вариантами
источник

E

Eugene in Compiler Development
Sailor Moon
динамического хаскеля не хватает :(
источник

AV

Alexander Vershilov in Compiler Development
Если вы хотите сказать, что это не так, то можете предложить для рассмотрения язык, в котором это не так.
источник