Народ не перестает отжигать, в такие моменты сожалею, что нет инвайта:
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>>Интересная статья, но есть терминологическая неточность. Вычислительные выражения являются синтаксическим сахаром для монад и моноидов.
РД>Спасибо, я про применение моноидов в программировании не знал,
Дык, есть же известный мем:
Монада — всего лишь моноид из категории эндофункторов, что может быть проще?