Size: a a a

Rust — русскоговорящее сообществo

2020 September 03

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Danieλ Sλapman
В посте пытаются добавить в джаву ADT, в расте уже есть ADT (enum) и механим добавления функций (трейты) - из коробки всё решается безо всякого final tagless
Моя оценка Вашего высказывания — Вы просто не разобрались в проблеме. Но обосновывать своё мнение я никак не собираюсь, так что смотрите сами.
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
нет
источник

DS

Danieλ Sλapman in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Моя оценка Вашего высказывания — Вы просто не разобрались в проблеме. Но обосновывать своё мнение я никак не собираюсь, так что смотрите сами.
Могу сказать ровно то же.
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Generic Associated Types
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Danieλ Sλapman
Могу сказать ровно то же.
Логично. 👍
Ну, кому надо сами решат кто из нас правее. 🤷‍♀️
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Danieλ Sλapman
В посте пытаются добавить в джаву ADT, в расте уже есть ADT (enum) и механим добавления функций (трейты) - из коробки всё решается безо всякого final tagless
Впрочем, в качестве намёка (опять же, для интересующихся) укажу на тот факт, что Final Tagless придумали для Haskell (или OCaml), в котором ADT и классы типов ещё более есть, и тем не менее.
источник

DS

Danieλ Sλapman in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Впрочем, в качестве намёка (опять же, для интересующихся) укажу на тот факт, что Final Tagless придумали для Haskell (или OCaml), в котором ADT и классы типов ещё более есть, и тем не менее.
Спасибо, я даже читал пейпер Киселёва
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Danieλ Sλapman
Спасибо, я даже читал пейпер Киселёва
Круто! Всецело одобряю. (Я серьёзно, без иронии.)

Но ремарка, всё же, была не для Вас. 😊
источник

DS

Danieλ Sλapman in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Впрочем, в качестве намёка (опять же, для интересующихся) укажу на тот факт, что Final Tagless придумали для Haskell (или OCaml), в котором ADT и классы типов ещё более есть, и тем не менее.
А ещё там есть HKT (в OCaml - параметрические модули) 😉
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Danieλ Sλapman
А ещё там есть HKT (в OCaml - параметрические модули) 😉
И это всё равно не спасает от expression problem... 🤔
источник

DS

Danieλ Sλapman in Rust — русскоговорящее сообществo
Alexander Tchitchigin
И это всё равно не спасает от expression problem... 🤔
При всём уважении, мой изначальный посыл в том, что в той статье про джаву - не final tagless, а для «настоящего» final tagless нужны HKT
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Danieλ Sλapman
При всём уважении, мой изначальный посыл в том, что в той статье про джаву - не final tagless, а для «настоящего» final tagless нужны HKT
Да, я понял. Но я не разделяю этого мнения. Как и Вашего мнения, что FT ортогонален Expression Problem.
Но спорить не хочу. 🤷‍♀️
источник

DS

Danieλ Sλapman in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Да, я понял. Но я не разделяю этого мнения. Как и Вашего мнения, что FT ортогонален Expression Problem.
Но спорить не хочу. 🤷‍♀️
В части ортогональности я формально неправ, FT решает в том числе expression problem
источник

DS

Danieλ Sλapman in Rust — русскоговорящее сообществo
В свою очередь намекну интересующимся, что final tagless позволяет абстрагироваться от типа эффекта конечного интерпретатора, что в java-подходе из статьи не получится
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Danieλ Sλapman
В свою очередь намекну интересующимся, что final tagless позволяет абстрагироваться от типа эффекта конечного интерпретатора, что в java-подходе из статьи не получится
Это интересный момент, и для этого уже действительно понадобятся HKT.
Только если это делается (в Haskell) так, как я думаю, то этот приём как раз ортогонален FT и используется без него достаточно часто. Есть ли пример чтобы проверить, правильно ли я догадался?
источник

DS

Danieλ Sλapman in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Это интересный момент, и для этого уже действительно понадобятся HKT.
Только если это делается (в Haskell) так, как я думаю, то этот приём как раз ортогонален FT и используется без него достаточно часто. Есть ли пример чтобы проверить, правильно ли я догадался?
источник

DS

Danieλ Sλapman in Rust — русскоговорящее сообществo
(я сейчас с телефона, прошу извинить, так бы сам накидал минимальный пример)
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Спасибо, смотрю.
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Ладно, я подумал про другой приём. 😄
источник

DS

Danieλ Sλapman in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Ладно, я подумал про другой приём. 😄
Можете поделиться, мне теперь самому интересно 😅
источник