Граждане!
У кого есть опыт работы с этим чудом, выскажитесь плиз.
Это действительно круто, как об этом говорят, или все-таки больше понт?
Уважаемые те, кто не работал с ФЯ - большая просьба, не флудить. Копипаста также не интересует, хочется послушать тех, кто реально это дело щупал.
"Фу бля, крохобор вонючий" (с) Svart Testare
Неактивен
Это действительно круто, как об этом говорят, или все-таки больше понт?
В Питоне элементы функционального кодинга порой позволяют резко сократить объем кода и сделать его более читабельным. Но написание большого приложения полностью на ФЯ требует полного переключения сознания на стиль ФЯ. Говорить о том, что ФЯ типа silver bullet - думаю глупо, т.к. ООП для сложных архитектур ИМХО более приемлема.
Редактировался Linfan (24-09-10 15:54:47)
"но в отличие от вас не стремлюсь здесь перед всеми показаться умнее всех"
"Ну здесь много мосек, что ж поделаешь."
"народ после общения со мной умнеет что ли, становится более бдительным в сети"
(с) Великий Человек
Неактивен
На функциональщине денег не заработает, изучается очень трудно, один язык не похож на другой (как с явы можно легко перейти на шарп), отсутствуют нормальные среды разработки, нету нормальных библиотек, и еще раз, очень трудно изучается, так как в хаскеле a = a + a не совсем тоже самое, что и в шарпе, это рекурсивный вызов функции, в общем - закопать и не нужно. А если очень хочется функциональщины, используем руби:
((double = -> x { (x*x) };) print(double.(10)))
Неактивен
отсутствуют нормальные среды разработки
=
Нету Вижуал Студии
Неактивен
Как я понимаю функциональные языки проще в том плане, что у них спецификация в разы меньше? Если не ошибаюсь полное описание Хаскеля занимает всего 100 страниц. Только компенсируется это тем, что нужно иметь строго математическую манеру мышления чтобы понимать их лексику.
Я правильно понимаю?
Неактивен
Нету Вижуал Студии
Вы будете смеяться, но есть. F#, например.
Неактивен
Вы будете смеяться, но есть. F#, например.
F#, сука, забавный (с). Имея полную интеграцию с плюшками .NET, например, он может работать полностью под silverlight или, что еще забавнее, WPF.
Возможностью такой интеграции (нативного использования прямо из языка) с такого рода средствами ни один другой функциональный язык в мире в данный момент времени похвастаться не может...
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Неактивен
=
Нету Вижуал Студии
F# есть.
Добавлено спустя 10 ч 13 мин 49 с:
https://nesteruk.wordpress.com/2011/02/0 … an-csharp/
Неактивен
exception LexerException of string
let lexer_token_safe lexbuf =
try Lexer.token lexbuf
with Failure s -> raise (LexerException s)
let render tmppath finalpath tree =
let outtex = Util.mapjoin Texutil.render_tex tree in
let md5 = Digest.to_hex (Digest.string outtex) in
begin
let mathml = Mathml.render tree
and html = Html.render tree
in print_string (match (html,!Html.conservativeness,mathml) with
None,_,None -> "+" ^ md5
| Some h,Html.CONSERVATIVE,None -> "c" ^ md5 ^ h
| Some h,Html.MODERATE,None -> "m" ^ md5 ^ h
| Some h,Html.LIBERAL,None -> "l" ^ md5 ^ h
| Some h,Html.CONSERVATIVE,Some m -> "C" ^ md5 ^ h ^ "\000" ^ m
| Some h,Html.MODERATE,Some m -> "M" ^ md5 ^ h ^ "\000" ^ m
| Some h,Html.LIBERAL,Some m -> "L" ^ md5 ^ h ^ "\000" ^ m
| None,_,Some m -> "X" ^ md5 ^ m
);
Render.render tmppath finalpath outtex md5
end
Код на функциональном языке. ВООБЩЕ НИХЕРА непонятно, как на _ЭТОМ_ вообще можно писать? Глаза сломаешь просто, вот по этому, F#, в основе которого OCaml и загибается из за ненужности. Перл и мой бенифак просто героем выразительности, чистоты синтаксиса и понятности кажется!
Редактировался Luca (09-10-11 18:25:14)
Прошу поменьше мата
Неактивен
Перепиши на руби, тогда и говори.
Как я могу это переписать, если я не могу разобрать этого говнокод?
Неактивен
Babusha, поясни, почему ты считаешь функциональные языки плохими. Аргумент нипаняятнаа прошу не приводить, так как понятность программного кода зависит от опыта программиста.
Из за огромного порога вхождения из за глупого синтаксиса, основанного на фанатическом "функциональном" стиле, который якобы наиболее близкий к математике. К примеру, моим первым языком был Си (ну я его знал совсем поверхностно), потом я выучил руби, после этого я без затруднений понимал PHP, Perl, Python, Java, C# и куча еще, как видишь, я когда взялся за C# совсем крепко, решив писать компилятор и виртуальную машину для бреинфака, он мне дается очень просто, а все мои знания основаны на простом синтаксисе руби и си. Я так смогу изучать просто функциональный язык?
Редактировался Babusha (09-10-11 21:44:05)
Неактивен
Неправда ваша. Моим первым самостоятельно изученным языком был Scheme (классический ФЯ с мозгоразрывным синтаксисом). Выучил на вполне неплохом уровне за полтора-два месяца попутно с пинанием баклуш на форумах.
Вот по этому ФЯ и хуита, мне C# реально учить даже не пришлось, пошел как будто я его всю жизнь знаю, клянусь, так и было!
Чем же он так туп?
Ну как в хачзсцкеле fun = fun + fun это рекурсивный вызов функции, очень непривычно, неправда ли?
На уровне реализации "Hello World"? В этом нет особой заслуги. Чтобы понимать язык чуть глубже, нужно вникнуть в его тонкости. Можете проверить и портануть какой-нибудь ваш код с руби на жабу ту же. Узнаете много нового.
Ничего сложного. Сложность скорее в том, что придется переписывать с самого начала, т.к. подход к написанию на яве не очень похож на руби.
Мне после начала изучения Python и Java все больше и больше нравится синтаксис Scheme. Он красив. В нем подход к любому оператору всегда унифицирован и выглядит как вызов функции. В то время как в других языках городится целое скопище синтаксических конструкций. Да и с практикой синтаксис любьго языка будет понятен.
Просто ради интереса, покажи реальный пример кода где ФП и включая Scheme будет круче чем тот же код на Ruby & C# ?
Неактивен
Обычная тонкость языка. В каждом языке есть что-то свое, иначе они были бы как две капли воды, не?
Согласен, но оно нужно?
Что значит круче? Реальные примеры в сети есть.
Или примеры кода или до свидания.
Неактивен
Babusha, сам найдешь, следующий.
ФП слился, уря!
Хотя
(* 10 20 30 40)
выглядит няшно.
Редактировался Babusha (10-10-11 00:33:15)
Неактивен