namespace Nemerle.Builtins
От: nikov США http://www.linkedin.com/in/nikov
Дата: 26.01.07 08:56
Оценка:
В пространстве имен 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
Re: namespace Nemerle.Builtins
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.07 11:15
Оценка:
Здравствуйте, 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>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.