Что такое ASP.net с точки зрения FP? - PullRequest
1 голос
/ 09 ноября 2009

Может быть, я буду выглядеть странно. Не стесняйтесь редактировать и т.д. Что такое ASP.net с точки зрения FP?

В настоящее время я изучаю FP и чувствую себя довольно смущенным, потому что не могу разделить технологию, которую я использую каждый день, буквально ASP.Net, - на некоторые логические части с точки зрения FP.

Теперь я отношусь ко всей машине ASP.Net как к большой монаде состояния, для которой я обычно использую OnPreRender как точку вызова кода, не связанного с ASP-сетью. Я отношусь к aspx как к метапрограммированию. Что такое пользовательский контроль? Специально контроль? Какие контексты (функциональные среды) мы должны различать - контекст http? контролировать контекст? контекст страницы? Может быть, я не вижу ничего очевидного, например, обработки обработчиков страниц == делегатов == лямбды? Я в принципе прав? Кто-нибудь может предложить более свежий взгляд на ASP.Net - особенно классический?

Не имеет смысла знать, что «веб-формы-отстой» - я хотел бы знать, как я должен использовать мощность и «тьюринг-полноту» FP в этой конкретной среде.

Ответы [ 2 ]

1 голос
/ 10 ноября 2009

Вы можете думать об этом так, но я не уверен, что это слишком полезно. Проблема в том, что ASP.Net сама по себе написана не в функциональном стиле.

Было бы гораздо проще и полезнее начать просматривать вещи , которые вы пишете (на любом фреймворке / языке) с точки зрения побочных эффектов и функциональной композиции. Начните полагаться на состояние меньше (за исключением того, что в ASP.Net, где вы должны) и вместо этого начинайте думать с точки зрения неизменных данных, входов и выходов.

В качестве небольшого примера, вместо того, чтобы думать в терминах модификации моей строки с помощью контакта, вместо этого начните использовать функции (методы), такие как String.format. Такие мелкие вещи очень сильно помогут при попытке применить функциональный стиль к среде OO.

Чтобы действительно начать получать пользу от изучения FP, попробуйте мыслить с точки зрения композиции и сочетаемости (реального слова ??), а не с точки зрения ОО-иерархий и наследования.

0 голосов
/ 10 ноября 2009

ASP.Net - это своего рода монада ввода-вывода. Типы операций ввода-вывода, доступные в монаде, это те, которые читают из HTTP-запросов и записывают в HTTP-ответы.

Возможно, будет полезно взглянуть на сервер веб-приложений, написанный на чисто функциональном языке. Happstack полностью написан на Haskell.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...