Для меня важная вещь состоит в том, чтобы удостовериться, что Вы делаете все в 'шепелявости-y' путь. Не испытывайте желание думать 'В Java, который я использовал бы для цикла здесь, как я делаю для циклов в Lisp?' но пройти достаточно примеров и учебных руководств (поскольку кто-то указал, , SICP идеально подходит для этого), что можно начать определять, когда взгляды кода 'Lisp-y' и распознают общеязыковые парадигмы.
я, конечно, знаю чувство рассмотрения некоторого кода, который я только что написал и интуитивно зная, что это правильно идиоматично для того языка и платформы/платформы - что, я думаю, когда это 'нажимает'.
Редактирование : И престижность за выбор функционального языка, меньшие студенты просто сделали бы это в Java:)
Вот вики-сайт с большим количеством примеров кода, демонстрирующего, как использовать различные возможности фреймворка .NET Rx: http://rxwiki.wikidot.com/101samples
Я нашел этот сайт наиболее полным и быстрым для начала.
.Вы можете найти эту серию статей (их четыре) о реактивном LINQ полезными: Реактивное программирование (II.) - Знакомство с реактивным LINQ .
У него есть пример написания игры с его использованием, так что, надеюсь, это будет то, что вы ищете.
Распространяется ли ваш пункт об исключении документации Microsoft на видео на канале 9?
От создателя реактивного фреймворка Эрика Мейера: - От эксперта к эксперту: Брайан Бекман и Эрик Мейер - Внутри .NET Reactive Framework (Rx)
Совершенно новый : Начало работы с расширениями Rx для .NET
I also found Introducing the Reactive Framework Part I on CodeBetter.com
. There is a sequel to the first part on the same site.
I hope this will help you.
Просмотрите эти статьи и, в частности, загрузите соответствующий исходный код и поиграйте с ним.
Надеюсь, это поможет
Вот пример того, что легко сделать с реактивным программированием, но беспорядочно (если не сложно) с классическими событиями, он рисует линии, когда кнопка мыши нажата. Он читабелен, нет явной обработки состояния:
var pen = new Pen(Color.Red, 3);
var graphics = this.CreateGraphics();
var mouseMoveWhileDown =
from md in this.GetMouseDown()
from mv in this.GetMouseMove().Until(this.GetMouseUp())
select new Point(mv.X, mv.Y);
mouseMoveWhileDown
.Pairwise()
.Subscribe(tup => graphics.DrawLine(pen, tup.Item1, tup.Item2));
(я должен признать, что в этом примере Pairwise () является самодельным ...)
Самая важная вещь в IObservable - это то, что он «компонуемый» , как и IEnumerable.
Я настоятельно рекомендую видео, упомянутое в другом ответе. На самом деле на Channel9 есть несколько разных видео на эту тему:
Сайт MSDN для Rx-Framework
Для более глубокого разработчика, Исходный код
Крутой австрийский доклад о Rx
Это лучший вариант I видели: Основной доклад DevCamp 2010 - Прием: Излечение вашего блюза асинхронного программирования
Некоторые интересные видео на Channel 9
Ким Гамильтон и Уэс Дайер: Inside .NET Rx и IObservable / IObserver в BCL (VS 2010)
Интервью с создателем из Rx: От эксперта к эксперту: Брайан Бекман и Эрик Мейер - Внутри .NET Reactive Framework (Rx)
Введение от создателя Rx
Codeproject Статья
Другой курс первый блог со ссылками (новый)