Size: a a a

Типы в языках программирования, моделирования, представления знаний и жизни

2021 December 01

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
источник

АП

Антон Пилипчук... in Типы в языках программирования, моделирования, представления знаний и жизни
в каком-то смысле, получается так
источник

K

Kir in Типы в языках программирования, моделирования, представления знаний и жизни
Где это отмечено-то? Это структура с двумя строковыми полями и конструктором методом?
источник

K

Kir in Типы в языках программирования, моделирования, представления знаний и жизни
Нет, я просто не люблю имплиситы не к месту
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Тогда у вас есть проблемка, потому что можно случайно настакать сколько угодно скобок

mkParenthesized : String -> Parenthesized

mkParenthesized (mkParenthesized (mkParenthesized x))
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Ну, одно дело -- субъективная нелюбовь (с которой я полностью согласен), а другое -- объективные проблемы с концепцией
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Я бы на вашем месте сделал по-другому, ввёл бы процедуру toString, которая вызывается на печатаемых объектах
И в ней бы уже добавлял скобки вокруг исходной строчки
Тогда не нужен кастомный конструктор, и для всех структур можно ввести единый синтаксис создания структуры из её полей
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Это, конечно, тоже субъективщина, ООП-языки с произвольными конструкторами существуют...
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
В общем, нужно избавиться от ненужной подтипизации, а дальше вроде как без разницы
источник

АП

Антон Пилипчук... in Типы в языках программирования, моделирования, представления знаний и жизни
получится та же история что и с вариантом из https://t.me/typeslife/14349 - придётся везде или вызывать toString или проводить каст строки в Parenthesis
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Ну, toString процедура print может вызывать за вас)
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
print : impl ToString -> ()
источник

АП

Антон Пилипчук... in Типы в языках программирования, моделирования, представления знаний и жизни
print да, но не принтом единым сыт программист
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Мне кажется, программисту будет полезно различать просто строчку и строчку в скобках
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Короче, в той же Джаве ваш вариант спокойно можно сделать
По модулю того, что конструктор надо будет вызывать явно
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Можно рассмотреть, что за язык получится, если в лямбда-исчисление с изменяемым состоянием и объектами добавить неявные конструкторы
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Кажется, получится ад
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Или нет...
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Ну, во всех объявлениях переменных нужно будет помечать их тип, иначе вывод типов будет странно себя вести
источник

ПС

Павел Соколов... in Типы в языках программирования, моделирования, представления знаний и жизни
Хотя в системах с сабтайпингом это и так придётся делать...
источник