В пространстве имен Nemerle.Builtins определены generic-типы для поддержки кортежей и функциональных значений.
Возник такой вопрос:
Tuple['p0, 'p1], Tuple['p0, 'p1, 'p2]
определены как структуры, а
Tuple['p0, 'p1, 'p2, 'p3], Tuple['p0, 'p1, 'p2, 'p3, 'p4], ...
как классы. Это как-то влияет на семантику?
И еще: зачем нужны типы
Array1[T], ..., Array10[T]
?
30.01.07 17:57: Перенесено модератором из 'Декларативное программирование' — IT
Здравствуйте, nikov, Вы писали:
N>Tuple['p0, 'p1], Tuple['p0, 'p1, 'p2]
N>определены как структуры, а
N>Tuple['p0, 'p1, 'p2, 'p3], Tuple['p0, 'p1, 'p2, 'p3, 'p4], ...
N>как классы. Это как-то влияет на семантику?
Нет. Кортежи являются не изменяемыми типами, так что семантика вэлью-типов и ссылочных типов тут никак не отличается. Это сделано с целью увеличения производительности. Кортежи из 2-3 элементов выгоднее копировать по значению, а дальше уже все больеш, и больше выгодно копировать ссылки.
N>И еще: зачем нужны типы Array1[T], ..., Array10[T]
?
Какие-то тонкости реализации. Точно не знаю. Лучше задать этот вопрос разработчикам в конференции.
... << RSDN@Home 1.2.0 alpha rev. 637>>