Народ не перестает отжигать, в такие моменты сожалею, что нет инвайта:
1) Поменять местами тип и название параметра в описании методов, плюс влепить между ними двоеточие. Разделять запятой, а не точкой с запятой.
3) Заменить угольные скобки на квадратные в описании генериков. Это массив или доступ по индексу?
4) Тип результата функции писать в конце метода, опять через двоеточие. Кроме того, void все еще есть
5) Лямбду через минус, а не через знак равно.
H>3) Заменить угольные скобки на квадратные в описании генериков. Это массив или доступ по индексу?
С дженериками действительно незадачка получилась — точка эта дурацкая Я знаю причину, читал тред.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Re[2]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, Ka3a4oK, Вы писали:
H>>3) Заменить угольные скобки на квадратные в описании генериков. Это массив или доступ по индексу? KK>С дженериками действительно незадачка получилась — точка эта дурацкая Я знаю причину, читал тред.
Во второй версии, думаю, сможем обойти это. Даже, возможно, получится С++-ные скобки для параметров типов использовать — "<>".
А вот расположение типов — это более принципиально.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Статья по Computation Expressions. Автор: Рысцов Денис
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Denom, Вы писали:
D>>Всё эти удобства асинхронных вызовов плюшек очень бы пригодились D>>при разработке под WP7
VD>Злые языки говорят, что в WP7 не будет многозадачности. Может врут, правда.
Таки не будет — при нажатии на аппаратную кнопку search или home или при вызове системных диалогов типа отправки sms и т.д.
состояние активной страницы сохраняется, а поля (состояние программы нужно сохранять вручную) а при восстановлении так-же вручную восстанавливать.
Но речь не об этом — в .NET Framework для WP7 WebRequest/WebResponce имеют только асинхронные методы типа
BeginGetResponce/EndGetResponce — соответсвенно есть два варианта либо делать колбэки именованными методами либо использовать лямбды. Соответственно при разработке приложений работающих custom вебсервисами, все методы реализующие обращение к методам веб сервиса тоже должны использовать колбэки в том или ином виде.
Имея поддержку в языке примитивов типа async/await реализация клиентов для вебсервисов значительно бы упростилася и код был бы красивее. Впрочем мне и поддержки VS 2010 и WPF/Silverlight/WP7 было бы достаточно...
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[4]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, Denom, Вы писали:
VD>>Злые языки говорят, что в WP7 не будет многозадачности. Может врут, правда. D>Таки не будет — при нажатии на аппаратную кнопку search или home или при вызове системных диалогов типа отправки sms и т.д. D>состояние активной страницы сохраняется, а поля (состояние программы нужно сохранять вручную) а при восстановлении так-же вручную восстанавливать.
D>Но речь не об этом — в .NET Framework для WP7 WebRequest/WebResponce имеют только асинхронные методы типа BeginGetResponce/EndGetResponce...
Само наличие BeginGetResponce/EndGetResponce как раз говорит о том, что многозадачность таки будет. А то что приложения усыпляются при переключении на системные функции, можно это из каких-то других соображений сделано.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, VladD2, Вы писали:
VD>Само наличие BeginGetResponce/EndGetResponce как раз говорит о том, что многозадачность таки будет. А то что приложения усыпляются при переключении на системные функции, можно это из каких-то других соображений сделано.
Тогда скорее не многозадачность а асинхронность/многопоточность
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re: Статья по Computation Expressions. Автор: Рысцов Денис
Интересная статья, но есть терминологическая неточность. Вычислительные выражения являются синтаксическим сахаром для монад и моноидов. List, array и enumerable comprehension являются как раз примерами моноидов. Для них определены yield и yieldcomp, но не заданы return и defcomp/callcomp.
Моноид — это более простая конструкция, чем монада. Определяем главную операцию, а именно Combine. Также определяем единицу моноида, которая соответствует методу Zero у билдера. Для list единица — это пустой список, для array — пустой массив, а для enumerable единица моноида — это пустое перечисление. Вот, собственно и весь моноид.
Между прочим, для монады метод Zero возвращает обычно значение () обернутое в монаду. Во-вторых нет yield/yield, но определены функции Bind и Return. Это совсем другое.
В общем, синтаксический сахар для монад и моноидов похож, но сами объекты разные.
Re[6]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, Denom, Вы писали:
D>Здравствуйте, VladD2, Вы писали:
VD>>Само наличие BeginGetResponce/EndGetResponce как раз говорит о том, что многозадачность таки будет. А то что приложения усыпляются при переключении на системные функции, можно это из каких-то других соображений сделано. D>Тогда скорее не многозадачность а асинхронность/многопоточность
VD>Кури определения.
Я вкурсе что такое многозадачность, но в том-то и дело — что задача выполняется одна — запущенное приложение, а внем может работать несколько потоков — например несколько запросов к разным сайтам .
Т.е многозадачность есть, но она поточная а не процессная, согласен?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[2]: Статья по Computation Expressions. Автор: Рысцов Дени
Хочу добавить для полноты, что монада — это тоже моноид, но я совершенно не силен в теории категорий. В общем, лучше не упирать так на монады в статье. Мол, есть синтаксический сахар для них. Мне много больше нравится нейтральное слово "вычисление". Именно поэтому я взял сокращение comp в свое время Вычислением можно обозвать и значение в монаде, и некий процесс генерирования последовательности. Вычисление потом нужно отдельно запустить. Простая и доступная терминология.
Re[8]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, Denom, Вы писали:
VD>>Кури определения. D>Я вкурсе что такое многозадачность, но в том-то и дело — что задача выполняется одна — запущенное приложение, а внем может работать несколько потоков — например несколько запросов к разным сайтам . D>Т.е многозадачность есть, но она поточная а не процессная, согласен?
Потоки не имеют никакого отношения к процессам. В винде единицей многозадачности является поток. Процесс — это адресное пространство. Не думаю, что в МС пошли другим путем.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, dsorokin, Вы писали:
D>Интересная статья, но есть терминологическая неточность. Вычислительные выражения являются синтаксическим сахаром для монад и моноидов. List, array и enumerable comprehension являются как раз примерами моноидов. Для них определены yield и yieldcomp, но не заданы return и defcomp/callcomp.
Ну, так может быть ты создашь статью объясняющую теоретическую подоплеку? Только так, чтобы окружающим было понятно (а не только хаскелистам).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, VladD2, Вы писали:
VD>Ну, так может быть ты создашь статью объясняющую теоретическую подоплеку? Только так, чтобы окружающим было понятно (а не только хаскелистам).
Да, да, помню. Все никак руки не доходят
Re[2]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, dsorokin, Вы писали:
D>Интересная статья, но есть терминологическая неточность. Вычислительные выражения являются синтаксическим сахаром для монад и моноидов.
Спасибо, я про применение моноидов в программировании не знал, поэтому и рассматривал yield c zero в computation expressions как попытку скрестить монады с языком, в котором существует оператор yield. Действительно, computation expressions очень легко описать как монады + моноиды. Будет настроение — поправлю статью
Re[3]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, Рысцов Денис, Вы писали:
РД>Здравствуйте, dsorokin, Вы писали:
D>>Интересная статья, но есть терминологическая неточность. Вычислительные выражения являются синтаксическим сахаром для монад и моноидов.
РД>Спасибо, я про применение моноидов в программировании не знал,
Дык, есть же известный мем:
Монада — всего лишь моноид из категории эндофункторов, что может быть проще?
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, dsorokin, Вы писали:
VD>>Ну, так может быть ты создашь статью объясняющую теоретическую подоплеку? Только так, чтобы окружающим было понятно (а не только хаскелистам).
D>Да, да, помню. Все никак руки не доходят
Так напрягись мальца
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Статья по Computation Expressions. Автор: Рысцов Денис
Скоро будет релиз, в котором будет конвертер из C# в Nemerle, а так же возможность компилятором Nemerle компилировать C# файлы. То есть берем проект на C#, а новый функционал пишем уже на Nemerle)
A>Скоро будет релиз, в котором будет конвертер из C# в Nemerle, а так же возможность компилятором Nemerle компилировать C# файлы. То есть берем проект на C#, а новый функционал пишем уже на Nemerle)
A>Это правда? Когда можно будет пощупать?
Уже можно. Цепляй C# исходники в проект и наслаждайся.
Re[2]: Статья по Computation Expressions. Автор: Рысцов Дени
A>Скоро будет релиз, в котором будет конвертер из C# в Nemerle, а так же возможность компилятором Nemerle компилировать C# файлы. То есть берем проект на C#, а новый функционал пишем уже на Nemerle)
A>Это правда? Когда можно будет пощупать?
Конвертера исходников нет (кто-то попытался его сделать, да бросил), а вот парсер C# в последних билдах уже давно есть и подключен к компилятору. Сейчас допиливается поддержка VS2008 (а за ней будет и VS2010) дабы движок интеграции мог запускать этот парсер в контексте IDE.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[3]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, alvas, Вы писали: A>>
A>>Скоро будет релиз, в котором будет конвертер из C# в Nemerle, а так же возможность компилятором Nemerle компилировать C# файлы. То есть берем проект на C#, а новый функционал пишем уже на Nemerle)
A>>Это правда? Когда можно будет пощупать?
H>Конвертера исходников нет (кто-то попытался его сделать, да бросил), а вот парсер C# в последних билдах уже давно есть и подключен к компилятору. Сейчас допиливается поддержка VS2008 (а за ней будет и VS2010) дабы движок интеграции мог запускать этот парсер в контексте IDE.
Примерный конвертер исходником можно получить уже сейчас.
Ставим Nemerle addin в Reflector.
Ставим File Generator или другую добавку для создания файлов.
Здравствуйте, _nn_, Вы писали:
__>Примерный конвертер исходником можно получить уже сейчас. __>Ставим Nemerle addin в Reflector. __>Ставим File Generator или другую добавку для создания файлов.
__>И наслаждаемся конвертированием
__>P.S. __>А потом доделываем конвертер C# => Nemerle
Nemerle addin не ставится в последнюю версию Reflector, а та версия Reflector что в \tools\reflector-addon\ не запускается — "out of date"
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, alvas, Вы писали: A>>
A>>Скоро будет релиз, в котором будет конвертер из C# в Nemerle, а так же возможность компилятором Nemerle компилировать C# файлы. То есть берем проект на C#, а новый функционал пишем уже на Nemerle)
A>>Это правда? Когда можно будет пощупать?
H>Конвертера исходников нет (кто-то попытался его сделать, да бросил), а вот парсер C# в последних билдах уже давно есть и подключен к компилятору. Сейчас допиливается поддержка VS2008 (а за ней будет и VS2010) дабы движок интеграции мог запускать этот парсер в контексте IDE.
РАБОТАЕТ!!!
Только интелисенс не работает + куча сообщений об ошибке, но компилируется без проблем
Здравствуйте, alvas, Вы писали:
A>Здравствуйте, _nn_, Вы писали:
__>>Примерный конвертер исходником можно получить уже сейчас. __>>Ставим Nemerle addin в Reflector. __>>Ставим File Generator или другую добавку для создания файлов.
__>>И наслаждаемся конвертированием
__>>P.S. __>>А потом доделываем конвертер C# => Nemerle
A>Nemerle addin не ставится в последнюю версию Reflector, а та версия Reflector что в \tools\reflector-addon\ не запускается — "out of date"
Так и есть.
Значит версию рефлектора обновить можно.
Это не проблема.
В чем проблема. После компиляции у Reflector.NemerleLanguage.dll есть 2 ссылки на mscorlib.
1-я на mscorlib v2.0, 2-я на mscorlib v1.0.
Взяв ildasm + ilasm , заменяем v1.0 на v2.0 и все работает
Осталось найти почему компилятор ставит ссылку на mscorlib 1.0.
Здравствуйте, _nn_, Вы писали:
A>>Nemerle addin не ставится в последнюю версию Reflector, а та версия Reflector что в \tools\reflector-addon\ не запускается — "out of date"
__>Так и есть.
__>Значит версию рефлектора обновить можно. __>Это не проблема.
__>В чем проблема. После компиляции у Reflector.NemerleLanguage.dll есть 2 ссылки на mscorlib. __>1-я на mscorlib v2.0, 2-я на mscorlib v1.0.
__>Взяв ildasm + ilasm , заменяем v1.0 на v2.0 и все работает
__>Осталось найти почему компилятор ставит ссылку на mscorlib 1.0.
Здравствуйте, dsorokin, Вы писали:
VD>>Ну, так может быть ты создашь статью объясняющую теоретическую подоплеку? Только так, чтобы окружающим было понятно (а не только хаскелистам).
D>Да, да, помню. Все никак руки не доходят
Ну, как? Все не дошли?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Статья по Computation Expressions. Автор: Рысцов Дени
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, dsorokin, Вы писали:
VD>>>Ну, так может быть ты создашь статью объясняющую теоретическую подоплеку? Только так, чтобы окружающим было понятно (а не только хаскелистам).
D>>Да, да, помню. Все никак руки не доходят
VD>Ну, как? Все не дошли?
Подумать надо. А кто-нибудь, вообще, использует их?
Re[6]: Статья по Computation Expressions. Автор: Рысцов Дени