Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Будущее C# и VB .NET


Автор: Exception 11.3.2006, 19:14
Уфф.... дописал-таки smile
http://forum.vingrad.ru/index.php?showtopic=87055

Автор: mr.DUDA 11.3.2006, 20:39
Код
  public static class Sequence {
    public static IEnumerable<T> Where<T>(
             this IEnumerable<T> source,        //Источник – перечисление
                  Func<T, bool> predicate) {   //Функция-условие

      foreach (T item in source)            //Для каждого объекта в источнике
        if (predicate(item))                //Если условие выполняется
          yield return item;              //Добавить в перечисление-результат
    }


Что-то я совсем запутался... Старый стал, наверно smile
Добавлено @ 20:41
З.Ы.
статья написана сложновато, с отступлениями, кое-где смысл улавливается с трудом... но плюс ставлю заслуженно - Гигант, сам такое осилил !

Автор: Exception 11.3.2006, 23:36
Имхо, единственный способ действительно все это осилить и понять - самому экспериментировать и компилировать каждый пример. Именно так я и делал smile
Добавлено @ 23:49
Пожалуйста, укажи непонятные места, постараюсь объяснить по-лучше smile

Автор: mr.DUDA 11.3.2006, 23:51
прочитал всю статью и может просто на ночь лучше мозг не напрягать, но ближе к середине код стал слегка непонятным, а к концу даже не вчитывался. smile

Автор: Exception 12.3.2006, 00:06
Честно говоря, иногда сам не понимал, что они там в примерах пишут. Заставлял себя копи-пастить код в студию и разбирать...

Автор: Stargazer 12.3.2006, 06:15
Супер конечно. SQL-like запросы интегрированные в язык это нечто, из-за чего я могу поступиться прЫнципами и перейти на c# smile
Такого вроде даже в Nemerle нету.

Автор: Ch0bits 12.3.2006, 11:00
Ну вот наконец до конца дочитал! smile
Большую часть понял, но в исходниках конечно надо разбираться в живую.

Цитата(Exception @ 11.3.2006, 23:36 Найти цитируемый пост)
самому экспериментировать и компилировать каждый пример. Именно так я и делал

Это как? Может чего-то скачать надо?

Автор: mr.DUDA 12.3.2006, 11:40
Цитата(Ch0bits @ 12.3.2006, 10:00 Найти цитируемый пост)
Это как? Может чего-то скачать надо?

Там в конце почитай, есть инструкция вроде...

Автор: Exception 12.3.2006, 12:02
http://msdn.microsoft.com/vcsharp/future
качай там LINQ Technology Preview.

Автор: Void 12.3.2006, 21:08
Цитата(Stargazer @ 12.3.2006, 08:15 Найти цитируемый пост)
Такого вроде даже в Nemerle нету.

В Nemerle аналог (и даже клон) LINQ можно сделать очень быстро с помощью макросов, тем более значительная часть необходимого синтаксического сахара в языке уже есть. А вот в Шарпе по-прежнему некоторых элементарных вещей не хватает, и появятся они в нем или нет, решать не нам, а Microsoft.

Автор: Exception 13.3.2006, 02:22
Ну уж клон DLinq ты там точно не сделаешь... smile
По содержимому самой статьи (по LINQ) вопросов нет?

Автор: chipset 13.3.2006, 08:17
Цитата(Void @ 12.3.2006, 11:08 Найти цитируемый пост)
В Nemerle аналог (и даже клон) LINQ можно сделать очень быстро с помощью макросов, тем более значительная часть необходимого синтаксического сахара в языке уже есть. А вот в Шарпе по-прежнему некоторых элементарных вещей не хватает, и появятся они в нем или нет, решать не нам, а Microsoft.

Скажу больше, такое можно сделать и в C++.

Автор: Exception 13.3.2006, 09:27
Тут главное - не сам LINQ, а DLinq, имхо. Жутко удобная технология, позволяющая избавиться от применения бизнес-объектов - объекты - это и есть записи.

Автор: Void 13.3.2006, 17:29
Цитата(Exception @ 13.3.2006, 04:22 Найти цитируемый пост)
Ну уж клон DLinq ты там точно не сделаешь...

Почему ты так уверен? В макросах Nemerle в compile-time доступна вся мощь языка. Макросы компилируются в сборки, которые подключаются компилятором на определенных этапах синтаксического и семантического разбора. Так что любые compile-time преобразования исходников — хоть LINQ в T-SQL, хоть интеграция XML, хоть реализация ORM — никаких проблем не вызовут. При этом возможно обеспечить внятные и прозрачные сообщения об ошибках.

Автор: Exception 13.3.2006, 17:36
Я имею в виду, нет готовой и такой простой реализации. Самому делать - другое дело smile .

Автор: Void 13.3.2006, 17:45
Цитата(Exception @ 13.3.2006, 19:36 Найти цитируемый пост)
Я имею в виду, нет готовой и такой простой реализации.

Ты имеешь в виду простоту создания или простоту использования? Если второе, то, как я уже сказал, можно сделать полный аналог реализации MS. Если первое, то трудоемкость реализации LINQ я оцениваю в один день от силы; про остальное сказать не могу, ни с DLinq, ни с XLinq подробно не разбирался.

Автор: mr.DUDA 13.3.2006, 18:44
Цитата(Void @ 13.3.2006, 16:45 Найти цитируемый пост)
Если первое, то трудоемкость реализации LINQ я оцениваю в один день от силы

Правильно, так их ламеров из M$, по мелкомягкому месту ! smile smile smile

А если серьёзно: неужели за 1 день можно заколбасить хотя бы отдалённое подобие линка ? Что-то меня мучают сомнения... smile

Автор: Exception 13.3.2006, 19:25
Цитата(mr.DUDA @ 13.3.2006, 19:44 Найти цитируемый пост)
Правильно, так их ламеров из M$, по мелкомягкому месту !

smile
Цитата(Void @ 13.3.2006, 18:45 Найти цитируемый пост)
ни с DLinq, ни с XLinq подробно не разбирался.

Как время будет, напишу о них отдельно.

Автор: Void 13.3.2006, 21:15
Цитата(mr.DUDA @ 13.3.2006, 20:44 Найти цитируемый пост)

Цитата
Если первое, то трудоемкость реализации LINQ я оцениваю в один день от силы

Правильно, так их ламеров из M$, по мелкомягкому месту!

А если серьёзно: неужели за 1 день можно заколбасить хотя бы отдалённое подобие линка ? Что-то меня мучают сомнения... smile

На Nemerle — да. То, что товарищи в MS колбасили соответствующий код в компиляторе не один день, я знаю smile Но метапрограммирование — сильная штука…

Я сам на Nemerle не специализируюсь, кто хочет подробнее — welcome to RSDN: http://rsdn.ru/forum/Message.aspx?mid=1678819, да и вообще в http://www.rsdn.ru/forum/?group=philosophy по этому поводу много в последнее время говорено. Фильтруйте флейм и будет вам масса полезной информации smile

Автор: Medved 15.3.2006, 01:15
Цитата(Void @ 14.3.2006, 00:15 Найти цитируемый пост)
Но метапрограммирование — сильная штука…

Пока, к сожалению, больше теоретически...

Автор: chipset 15.3.2006, 05:06
Цитата(Pegas @ 14.3.2006, 15:15 Найти цитируемый пост)
Пока, к сожалению, больше теоретически...

Ы? Метапрограммирование это те-же самые шаблоны и макросы из C++. Просто в Немерле сейчас самый мощный, распространенный механизм метапрограммирования из языков что мне известны. В совокупности с хорошей библиотекой классов (FCL) Немерле представляеться мне очень и очень неплохой средой разработки ;)
Ох ужи эти слоники... smile

Автор: mr.DUDA 15.3.2006, 08:31
А что такое DSL ? Вот на RSDN (в том числе в темке про немерле) все говорят что рульная мегатехнология программирования, а никто не объяснит в чём суть.

Автор: Medved 15.3.2006, 12:34
Цитата(chipset @ 15.3.2006, 08:06 Найти цитируемый пост)
Ы? Метапрограммирование это те-же самые шаблоны и макросы из C


Суть уловил, но имхо все же я бы не стал так говорить. Метапрограммирование включает в себя гораздо больше понятий. R# смотрели?
MS сейчас очень активно развивает именно эти направления.

Метапрограммирование - это программмирование самого процесса программирования.

http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%B0%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
http://www.rsdn.ru/projects/rsharp/article/rsharp_mag.xml

В общем все идет к тому, чтобы программировать не в исходных кодах, а в диаграммах UML, или чего-то похожего, если конечно будет придуманно что-то лучше.

ИМХО правильно сказал один мой знакомый - будущее за скриптовыми языками.

Автор: arilou 15.3.2006, 13:11
Цитата(mr.DUDA @ 15.3.2006, 08:31 Найти цитируемый пост)
А что такое DSL

DSL = Domain Specific Language - Язык Предметной Области. Велкам сюда : http://softwarefactories.com/

В двух словах - реализуется словарь понятий прикладной области для которой создается программа, и собственно сама программа пишется на этом языке.
Добавлено @ 13:24
Кстати, Microsoft тут уже засветился smile

http://msdn.microsoft.com/vstudio/DSLTools/

Автор: chipset 15.3.2006, 17:24
Цитата(mr.DUDA @ 14.3.2006, 22:31 Найти цитируемый пост)
А что такое DSL ? Вот на RSDN (в том числе в темке про немерле) все говорят что рульная мегатехнология программирования, а никто не объяснит в чём суть.

Языке в языке. Суть в том что для каждой области можно создать свой, специфичный язык и жечь на нём. Такое можно было-бы извлечь из C++ если бы его макросы были посложнее.
В Немерле макросы имеют дело прямо с веткой токенов, и поэтому они мощны smile

Автор: Void 15.3.2006, 17:35
Цитата(Pegas @ 15.3.2006, 14:34 Найти цитируемый пост)
R# смотрели?

Pegas, Влад фактически отказался от развития R# после знакомства с Nemerle.

Цитата(chipset @ 15.3.2006, 19:24 Найти цитируемый пост)
В Немерле макросы имеют дело прямо с веткой токенов, и поэтому они мощны smile

Переводя на язык теории, макросы в Nemerle работают с AST, а не с текстовым представлением smile

Авторы уловили правильное направление, взяли лучшее из макросов Лиспа и CamlP4, отказались от части их возможностей ради большего удобства применения, повысили типобезопасность и обеспечили прозрачный механизм сообщений об ошибках, почти решив одну из основных проблем традиционных макросистем.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)