Re[45]: Проблемы организации OR-мапинга
От: EvilChild Ниоткуда  
Дата: 04.05.09 11:31
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Конструкторы алгебраического типа конструируют экземпляры этого же алгебраического типа (и разумеется одного, что за нелепый вопрос). Но сам алгебраический тип придуман как обёртка для других типов,

С этим согласен полностью.
V>с тем, чтобы одна переменная (алгебраического типа) могла хранить значения различных целевых типов.
Это неверно. Переменная имеет один и тот же тип, независимо от того с помощью какого конструктора ты создал значение.
Да, ты можешь упаковать значения разных типов, но в результате упаковки получаются значения одного типа, что и подтвержается GHCi.

V>Сам по себе алгебраический тип используется только в том самом вырожденном случае, когда он используется в качестве перечисления. Во всех остальных случаях — это обёртка для других типов.

Продемонстрируй эти другие типы с помощью Hugs.

V>Насчёт разметки — это не дикое, это сущность размеченных объединений, я лишь проводил аналогию с объектами CLR, которые тоже содержат эту "разметку" в виде хендла типа.

Это всё верно, но деталь реализации.

V>Динамическое приведение типов в CLR (не преобразование, а именно приведение без изменения значения) — суть рантайм-тест этой "разметки", матч по алгебраическим типам в хаскеле — аналогично.

С этим никто и не спорит.

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