Size: a a a

Compiler Development

2020 January 28

YS

Yuriy Syrovetskiy in Compiler Development
Yuriy Syrovetskiy
да, всё правильно. теперь переведите на свой язык instance Functor (Either a)
это означает, что Either a b реализует интерфейс Functor при любом фиксированном a
источник

K

Kir in Compiler Development
Михаил Бахтерев
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/levity-pldi17.pdf - о том, как именно обстоят дела в Haskell с полиморфизмом.
Это-то здесь при чём?
источник

МБ

Михаил Бахтерев in Compiler Development
Kir
Это-то здесь при чём?
При том, что нет в Haskell аналогов static
источник

K

Kir in Compiler Development
В хаскеле нет аналогов non-static, вы хотели сказать?
источник

МБ

Михаил Бахтерев in Compiler Development
Kir
В хаскеле нет аналогов non-static, вы хотели сказать?
Нет
источник

YS

Yuriy Syrovetskiy in Compiler Development
Михаил Бахтерев
При том, что нет в Haskell аналогов static
так в Хаскеле нет вообще методов внутри типов, в том числе и static
источник

МБ

Михаил Бахтерев in Compiler Development
Yuriy Syrovetskiy
так в Хаскеле нет вообще методов внутри типов, в том числе и static
Я всего лишь утверждаю, что реализации классов всегда передаются в функции через словари, то есть, таблицы указателей (потому что всё boxed исходно). Потом это, конечно, оптимизируется. Но сама семантика языка такова
источник

МБ

Михаил Бахтерев in Compiler Development
Не очень понимаю, при чём здесь аналогии со static-методами java.
источник

K

Kir in Compiler Development
Ну, даааа, но в жаве на словари ссылаются объекты, а в хаскелле - словари передаются отдельно
источник

BD

Berkus Decker in Compiler Development
Михаил Бахтерев
Я всего лишь утверждаю, что реализации классов всегда передаются в функции через словари, то есть, таблицы указателей (потому что всё boxed исходно). Потом это, конечно, оптимизируется. Но сама семантика языка такова
семантика какого именно языка?
источник

МБ

Михаил Бахтерев in Compiler Development
Berkus Decker
семантика какого именно языка?
Core, в него рассахаривается Haskell. Плохо написал. Точнее: такова семантика рассахаривания Haskell в Core
источник

МБ

Михаил Бахтерев in Compiler Development
Kir
Ну, даааа, но в жаве на словари ссылаются объекты, а в хаскелле - словари передаются отдельно
И? Какая связь со статическими методами в Java?
источник

K

Kir in Compiler Development
То, что функции в хаскелле не привязаны к объектам, как методы
источник

МБ

Михаил Бахтерев in Compiler Development
Kir
То, что функции в хаскелле не привязаны к объектам, как методы
Есть какая-то существенная разница в том, как именно передавать таблицу указателей на код: отдельно или вместе с данными? Интерфейсы можно и так, и так реализовывать.
источник

K

Kir in Compiler Development
Да нет. Просто если к данным не привязываться, получится чуть мощнее в плане возможностей
источник

МБ

Михаил Бахтерев in Compiler Development
Интересный вопрос тут в другом: что появилось раньше, интерфейсы или классы типов? Кто наплодил сущностей?
источник

А

Алексей in Compiler Development
да какая разница?
источник

А

Алексей in Compiler Development
классы типов мощнее
источник

А

Алексей in Compiler Development
а значит интерфейсы и не нужны особо
источник

K

Kir in Compiler Development
Если бы мы не плодили сущностей, писали бы на ассемблере с макросами (в лучшем случае), а так хоть выбор есть
источник