Comments 22
UFO just landed and posted this here
Есть блог F#, вроде бы… а вообще это ясно не для всех… очень тяжелый материал.
0
UFO just landed and posted this here
Это не столько сложно, сколько непонятно для каких целей использовать. Дайте какой-нибудь убойный пример, который покажет преимущества функционального подхода перед объектно-ориентированным или процедурным подходами. Это я на тему нового хабротопика намекаю.
+4
Смотря что считать приемуществом. На самом деле, всё, что можно написать на F# или Haskell можно написать и на Си. В коде на Си будет больше скобочек, но не факт, что он будет при этом читаться хуже. И факт, что код на Си будет более производительным.
С другой стороны, факт, что код на Си будет сложнее распараллелить, в нём гораздо больше мест, в которых возможно допустить ошибку, в Си нужно будет управлять памятью вручную, вы не сможете кодом на Си похвастаться перед коллегами, потому что они тоже знают Си и поймут ваш код тоже.
А если с ребра посмотреть монетки, то концепции FP достаточно удобны и полезны. Javascript, например, вполне себе функциональный язык:
На FP стоит обращать внимание именно из-за этих вот концепций, из-за возможности подумать об организации кода в других терминах. Но с практической точки зрения чистое FP — это бесполезный инструмент, ибо основное устремление в FP — это попытка программировать без side effects, а кому в этом мире вообще нужны программы, не меняющие какое-то внешнее состояние?
С другой стороны, факт, что код на Си будет сложнее распараллелить, в нём гораздо больше мест, в которых возможно допустить ошибку, в Си нужно будет управлять памятью вручную, вы не сможете кодом на Си похвастаться перед коллегами, потому что они тоже знают Си и поймут ваш код тоже.
А если с ребра посмотреть монетки, то концепции FP достаточно удобны и полезны. Javascript, например, вполне себе функциональный язык:
function(x) {...}
— вполне себе lambda-выражение и часто используется на практике.На FP стоит обращать внимание именно из-за этих вот концепций, из-за возможности подумать об организации кода в других терминах. Но с практической точки зрения чистое FP — это бесполезный инструмент, ибо основное устремление в FP — это попытка программировать без side effects, а кому в этом мире вообще нужны программы, не меняющие какое-то внешнее состояние?
+1
Убойный пример я сам ищу. Вот здесь много интересных статей: fprog.ru/, но, к сожалению, толковой и увлекательной книги по F# я не нашел. Также как мало пока прикладных примеров использования F#, например, совместно с ASP.NET MVC. Полагаю, все это появится.
+1
а по моему есть что-то подобное…
0
Наверное, не «идентификация функции», а «тождественная функция»?
+2
ппц. без поллитры не разобраться. ничего не понял почти =(
+4
Исправьте, пожалуйста: «… теория породила собой огромное пространстранство …»
0
Честно говоря, с опаской жду C# 4.0. Вроде бы, есть ку да применить его фичи, но как вспомню, что делают с Линком «неумелые» программисты, боюсь думать, что они будут делать с dynamic.
0
например?
0
Ну, например, функция получает массив, делает по нему LINQ запрос, потом перегоняет его руками в List, а потом на листе вызывает .ToArray() и возвращает полученный массив.
+1
Sign up to leave a comment.
(Зло)употребление C# 4.0 Dynamic – Бестиповое Лямбда-Исчисление, Нумералы Чёрча, и все-все-все… (ч.1)