Re[28]: "альтернативные" языки
От: nikov США http://www.linkedin.com/in/nikov
Дата: 28.02.07 13:43
Оценка:
Здравствуйте, IT, Вы писали:

IT>А в чём проблема создать внутренний паблик класс и выставить наружу его? Нужно только подумать о наименовании.


Хе-хе! А сколько он параметров будет иметь? Или надо будет накладывать искусственное ограничение на количество элементов к кортеже?
Re[29]: "альтернативные" языки
От: IT Россия linq2db.com
Дата: 28.02.07 13:51
Оценка:
Здравствуйте, nikov, Вы писали:

IT>>А в чём проблема создать внутренний паблик класс и выставить наружу его? Нужно только подумать о наименовании.


N>Хе-хе! А сколько он параметров будет иметь? Или надо будет накладывать искусственное ограничение на количество элементов к кортеже?


Каких параметров?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[28]: "альтернативные" языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.02.07 13:54
Оценка: +1
Здравствуйте, IT, Вы писали:

IT>А в чём проблема создать внутренний паблик класс и выставить наружу его? Нужно только подумать о наименовании.


А дальше? Как заставить tuple1.GetType() == tuple2.GetType() вернуть true, если tuple1 и tuple2 совместимы по сигнатуре, но при этом физически это два разных класса? Тут хак в рантайме нужен типа делегатов, бо это duck typing в чистом виде. Ну или работать через TransparentProxy, но производительность такого решения ты наверное представляешь.
... << RSDN@Home 1.2.0 alpha rev. 675>>
AVK Blog
Re[29]: "альтернативные" языки
От: IT Россия linq2db.com
Дата: 28.02.07 14:07
Оценка:
Здравствуйте, AndrewVK, Вы писали:

IT>>А в чём проблема создать внутренний паблик класс и выставить наружу его? Нужно только подумать о наименовании.


AVK>А дальше? Как заставить tuple1.GetType() == tuple2.GetType() вернуть true, если tuple1 и tuple2 совместимы по сигнатуре, но при этом физически это два разных класса?


Вопрос зачем это надо?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[30]: "альтернативные" языки
От: nikov США http://www.linkedin.com/in/nikov
Дата: 28.02.07 14:13
Оценка:
Здравствуйте, IT, Вы писали:

IT>>>А в чём проблема создать внутренний паблик класс и выставить наружу его? Нужно только подумать о наименовании.


N>>Хе-хе! А сколько он параметров будет иметь? Или надо будет накладывать искусственное ограничение на количество элементов к кортеже?


IT>Каких параметров?


Может быть, я не понял тебя... Какой тип ты предлагаешь создать и выставить?
Re[30]: "альтернативные" языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.02.07 14:26
Оценка:
Здравствуйте, IT, Вы писали:

IT>Вопрос зачем это надо?


Чтобы кортежи, использованные в разных сборках, но совместимые по сигнатуре, были совместимы между собой. Т.е. для того же, для чего duck typing между делегатами и методами.
... << RSDN@Home 1.2.0 alpha rev. 675>>
AVK Blog
Re[27]: "альтернативные" языки
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.07 15:42
Оценка: -1
Здравствуйте, AndrewVK, Вы писали:

AVK>Демагогия.


Спасибо. Да, я и без пдсказаок заметл, что твои слова про контракты — это демагогия.

[Много неубедительной защиты кривых решений поскипаны]

VD>> Ведь если есть шанс повлиять на плохое решение, то его обязательно надо использовать.


AVK>Есть ли он в ситуации, когда дизайн языка утвержден?


Всегда самая удобная позиция — это сидеть на пятой точке и ничего не делать. Потом всегда можно сказать "А что я мог сделать?".

AVK>Может и есть, если вспомнить про nullable типы.


Темболее надо попробовать воздействовать. Сказать, что мол это мнение всего комьюнити РСДН и т.п.

VD>> Уверен, что мы не одни кто понимает, что такая половинчатасть — это плохо.


AVK>Да понимают они это. 100%.


Значит лишний пинок под зад может сдвинуть дело в нужном направлении.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[31]: "альтернативные" языки
От: IT Россия linq2db.com
Дата: 28.02.07 16:07
Оценка:
Здравствуйте, nikov, Вы писали:

N>Может быть, я не понял тебя... Какой тип ты предлагаешь создать и выставить?


Насколько я понимаю, сейчас создаётся private internal класс для таких анонимных типов, который соответственно доступен только внутри класса. Если решить вопрос с именованием этого типа, то можно его делать не private, а public и смело выставлять наружу.
Если нам не помогут, то мы тоже никого не пощадим.
Re[31]: "альтернативные" языки
От: IT Россия linq2db.com
Дата: 28.02.07 16:09
Оценка:
Здравствуйте, AndrewVK, Вы писали:

IT>>Вопрос зачем это надо?


AVK>Чтобы кортежи, использованные в разных сборках, но совместимые по сигнатуре, были совместимы между собой. Т.е. для того же, для чего duck typing между делегатами и методами.


Вот я и спрашиваю зачем это надо.
Если нам не помогут, то мы тоже никого не пощадим.
Re[32]: "альтернативные" языки
От: nikov США http://www.linkedin.com/in/nikov
Дата: 28.02.07 16:11
Оценка:
Здравствуйте, IT, Вы писали:

IT>Насколько я понимаю, сейчас создаётся private internal класс для таких анонимных типов, который соответственно доступен только внутри класса. Если решить вопрос с именованием этого типа, то можно его делать не private, а public и смело выставлять наружу.


Значит, я неверно понял вначале. Тогда игнорируй то мое замечание.
Re[32]: "альтернативные" языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.02.07 16:36
Оценка:
Здравствуйте, IT, Вы писали:

IT>Вот я и спрашиваю зачем это надо.


Ну, типа, чтобы не был "кастрированный кортеж" (С).
... << RSDN@Home 1.2.0 alpha rev. 675>>
AVK Blog
Re[33]: "альтернативные" языки
От: IT Россия linq2db.com
Дата: 28.02.07 16:47
Оценка:
Здравствуйте, AndrewVK, Вы писали:

IT>>Вот я и спрашиваю зачем это надо.


AVK>Ну, типа, чтобы не был "кастрированный кортеж" (С).


Ну понятно.

Вообще, конечно, сранное решение. Не то чтобы я переживал как Влад, но чесно говоря, если нельзя выставить такой тип наружу, то чисто с практической точки зрения такая фича видится мне пока совершенно бесполезной, хотя возможно я и не прав Столько усилий непонятно ради чего.
Если нам не помогут, то мы тоже никого не пощадим.
Re[34]: "альтернативные" языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.02.07 17:07
Оценка:
Здравствуйте, IT, Вы писали:

IT>Вообще, конечно, сранное решение. Не то чтобы я переживал как Влад, но чесно говоря, если нельзя выставить такой тип наружу, то чисто с практической точки зрения такая фича видится мне пока совершенно бесполезной, хотя возможно я и не прав Столько усилий непонятно ради чего.


Ну ради чего как раз понятно. Анонимные типы придумывались ради query comprehension, чтобы текст запроса был читаем и с минимумом "синтаксического оверхеда"(С). Но Владу очень хотется и ФПшные кортежи.
... << RSDN@Home 1.2.0 alpha rev. 675>>
AVK Blog
Re[26]: "альтернативные" языки
От: deniok Россия  
Дата: 28.02.07 17:51
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Я в курсе. Еще мама учила не делать уродов ради частных случаев, а пытаться делать гормоничный дизайн. Вот этого я и не вижу. Причем не вижу причины зачем так делать.


Re[26]: "альтернативные" языки
От: ambel-vlad Беларусь  
Дата: 28.02.07 18:12
Оценка: :)
Hi IT

AV>>В этом отношении мне нравиться как сделано в Питоне


IT>Именно об этом и речть. Только для одной переменной это выглядит так:


IT>def (_, b) = Fun();


Спасибо. Буду знать. Хотя еще не скоро будет возможность даже попробовать Nemerle.

P.S. Правда, слишком рьяно идет здесь реклама Nemerle. Даже отбивает желание смотреть на это. Но я сволочь любознательная — при возможности попробую посмотреть.

--
С Уважением
Posted via RSDN NNTP Server 2.0
Re[26]: "альтернативные" языки
От: ambel-vlad Беларусь  
Дата: 28.02.07 18:14
Оценка:
Hi nikov


AV>>В этом отношении мне нравиться как сделано в Питоне

AV>>AV>(a,b)=Fun()
AV>>

AV>>где a,b — локальные переменные. И перебор не надо.


n>В Nemerle тоже можно так. Более того, с левой стороны можно использовать любой образец (pattern). Например, если на этапе компиляции известно, что второй элемент кортежа — список, то можно написать так:


n>def (x, h :: t) = Fun();


Спасибо. Буду знать что в Nemerle тоже так можно сделать.

--
С Уважением
Posted via RSDN NNTP Server 2.0
Re[32]: "альтернативные" языки
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.07 18:53
Оценка:
Здравствуйте, IT, Вы писали:

IT>Насколько я понимаю, сейчас создаётся private internal класс для таких анонимных типов, который соответственно доступен только внутри класса. Если решить вопрос с именованием этого типа, то можно его делать не private, а public и смело выставлять наружу.



private internal — не бывает. Но это так... мелкое замечание.

По сути же... проблема в том, что классы в разных сборках должны быть совместимы.
Если мы, скажем, создали в одной сборке анонимный тип { DateTime Age; string Name; }, то нам надо, чтобы если в другой сборке будет такой же, то чтобы мы могли передать экземпляр этого туда. А если каждая сборка для реализации нашего анонимного типа создаст по классу, то они (по правилам дотенета) окажутся несовместимыми.

Проблема решается прой if-ов в загрузчеке типов дотнета. Надо просто тупо проверять не загружен ли уже такой тип и если загружен все отсальные вхождения подменят на первый. Но это изменение в рантайме, а по словам АВК Хейлсберг и ко. говорят что по не озвученым причинам они не хотят править рантайм.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[35]: "альтернативные" языки
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.07 19:10
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Ну ради чего как раз понятно. Анонимные типы придумывались ради query comprehension, чтобы текст запроса был читаем и с минимумом "синтаксического оверхеда"(С). Но Владу очень хотется и ФПшные кортежи.


Честно говоря теперь не то что бы очень хотелось. Откровенно говоря сейчас возвращаться на Шарп нет никакого желания. Я уж лучше потерплю позиционные кортежи.

Просто мне всегда не нравятся половинчатые решения приводящие к решению частных проблем, но не пригодных ни для чего больше (хотя очевидно полезных и для других задач).

В прочем хардкодинг query comprehensions сам по себе решение кривое. Но хотя бы поняты основания почему это так.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[27]: "альтернативные" языки
От: IT Россия linq2db.com
Дата: 28.02.07 19:34
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

AV>P.S. Правда, слишком рьяно идет здесь реклама Nemerle. Даже отбивает желание смотреть на это.


У Пушного есть такая песенка:

Люду я не буду...
Лилю не осилю...
Рита с паразитом...
...
Бритни, Бритни, хороша куда ни ткни...


То что мы наблюдаем, это не ръяная реклама, а просто восторг по поводу "Бритни"

AV>Но я сволочь любознательная — при возможности попробую посмотреть.


Посмотри.
Если нам не помогут, то мы тоже никого не пощадим.
Re[33]: "альтернативные" языки
От: IT Россия linq2db.com
Дата: 28.02.07 19:40
Оценка:
Здравствуйте, VladD2, Вы писали:

IT>>Насколько я понимаю, сейчас создаётся private internal класс для таких анонимных типов, который соответственно доступен только внутри класса. Если решить вопрос с именованием этого типа, то можно его делать не private, а public и смело выставлять наружу.


VD>private internal — не бывает. Но это так... мелкое замечание.


Под internal имелся ввиду класс, вложенный в другой класс.

VD>По сути же... проблема в том, что классы в разных сборках должны быть совместимы.


Я понимаю проблему. Вопрос, проблема ли это и нужно ли её решать.
Если нам не помогут, то мы тоже никого не пощадим.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.