Как стать автором
Обновить

Комментарии 22

НЛО прилетело и опубликовало эту надпись здесь
Есть блог F#, вроде бы… а вообще это ясно не для всех… очень тяжелый материал.
НЛО прилетело и опубликовало эту надпись здесь
Это не столько сложно, сколько непонятно для каких целей использовать. Дайте какой-нибудь убойный пример, который покажет преимущества функционального подхода перед объектно-ориентированным или процедурным подходами. Это я на тему нового хабротопика намекаю.
Смотря что считать приемуществом. На самом деле, всё, что можно написать на F# или Haskell можно написать и на Си. В коде на Си будет больше скобочек, но не факт, что он будет при этом читаться хуже. И факт, что код на Си будет более производительным.

С другой стороны, факт, что код на Си будет сложнее распараллелить, в нём гораздо больше мест, в которых возможно допустить ошибку, в Си нужно будет управлять памятью вручную, вы не сможете кодом на Си похвастаться перед коллегами, потому что они тоже знают Си и поймут ваш код тоже.

А если с ребра посмотреть монетки, то концепции FP достаточно удобны и полезны. Javascript, например, вполне себе функциональный язык: function(x) {...} — вполне себе lambda-выражение и часто используется на практике.

На FP стоит обращать внимание именно из-за этих вот концепций, из-за возможности подумать об организации кода в других терминах. Но с практической точки зрения чистое FP — это бесполезный инструмент, ибо основное устремление в FP — это попытка программировать без side effects, а кому в этом мире вообще нужны программы, не меняющие какое-то внешнее состояние?
Убойный пример я сам ищу. Вот здесь много интересных статей: fprog.ru/, но, к сожалению, толковой и увлекательной книги по F# я не нашел. Также как мало пока прикладных примеров использования F#, например, совместно с ASP.NET MVC. Полагаю, все это появится.
НЛО прилетело и опубликовало эту надпись здесь
Спасибо, похоже, то, что надо
а по моему есть что-то подобное…
НЛО прилетело и опубликовало эту надпись здесь
Наверное, не «идентификация функции», а «тождественная функция»?
Да, спасибо, ваш вариант лучше.
ппц. без поллитры не разобраться. ничего не понял почти =(
C поллитрой тем более :)
Исправьте, пожалуйста: «… теория породила собой огромное пространстранство …»
Спасибо!
Честно говоря, с опаской жду C# 4.0. Вроде бы, есть ку да применить его фичи, но как вспомню, что делают с Линком «неумелые» программисты, боюсь думать, что они будут делать с dynamic.
например?
Ну, например, функция получает массив, делает по нему LINQ запрос, потом перегоняет его руками в List, а потом на листе вызывает .ToArray() и возвращает полученный массив.
как бы вы поступили в данном случае? я вижу 2 варианта:
1) IEnumerable Method(IEnumerable collection) {… }
2) T[] Method(T[] collection) { return collection.Where(predicate).......ToArray() }
Да, либо первый, либо второй. Я, честно говоря, не помню, как там бальше этот массив обрабатывается и реально ли там нужен массив или IEnumerable сойдет. Но уж никак не тот способ, который они выбрали.
хабр съел генерик у IEnumerable, должен быть IEnumerable<T>
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации