LINUX.ORG.RU
ФорумTalks

Это ваше фп

 , , ,


0

3

Удивительно положительное чувство овладевает человеком, когда он узнает что-то по настоящему новое.

Оно ещё более положительно когда человек не только узнаёт а ещё и осознаёт то, что узнал.

Вот я на самом деле программист так себе, пишу себе свой быдлокод на с++. Чаще всего делаю всякое формоклепательство на кутях, и иногда экспериментирую с shared_ptr. Но как и любой другой программист иногда смотрю на всякие другие языки типа паскаля, питона, ады, йавы. Пытаюсь понять их фишки там всякие, сильные с слабые стороны. А всё для чего? Ну что бы вроде как гибче мыслить, знать подходы там всякие.

И вот дошла очередь до этих самой функциональщины. Читал я про лисп, читал. Не понял в чём фишка, забросил. Через некоторое время опять почитал - всё равно не понял. Со схемой там игрался, с ракетой - фигня какая-то.

Но эрланг - это фантастика. Как можно писать на языке с только лишь константными переменными? А как же циклы? А ооп? Ну ооп ладно уж, ада вон тоже без ооп и ничего, хороший язык. Но некое чувство непонятности, как же на нём писать остаётся. Как же без переменных то? Рекурсия? А ну эта, которая стек в сях переполняет со временем? Знаем, знаем. Значит тоже фигня и ничего особенного? Ан нет!

Вот значит прочитал я про tail recursion optimisation и призадумался. Попробовал представить, как это на сях сделать, но остановился, и это хорошо.

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

Лямбды - так, слегка. Удобно, коротко, но не впечатляет.

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

После того, как я это всё переварил в башке - мозг окончательно расплавлен. Но не скрою - в этом есть какое-то ощущение просветления.

И это епик вин, товарищи. Я определённо фанатею от этих штук, хотя и понимаю, что в ФП я в общем-то нуб.

Собственно вопрос такой: как после того, как твой мозг окончательно разломали продолжать писать на этом убогом с++? Как дальше жить и что дальше делать? Пытаться ли писать на с++ в ФП стиле? Но это же издевательство надо коллегами, никто из них же ничего не поймёт. А главное бонусов же за это реально не будет ни с т.з. производительности, ни с т.з. количества кода. Или я ошибаюсь? Может кто-то поделится историей успеха?

Спасибо.

Ответ на: комментарий от Vit

Ок, буду иметь ввиду ))

И какие же у ноды преимущества перед эрлангом? Ну и наоборот конечно, какие плюсы есть у эрланг в сравнении с нодой?

Можешь коротко изложить? Спасибо.

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от Miguel

В Лиспе очень много синтаксиса.

Полностью с вами согласен в этом вопросе.

no-such-file ★★★★★
()
Ответ на: комментарий от Miguel

Я свой аргумент привёл

Он начинается со слов «я считаю», это не аргумент а ваше мнение, взятое как я сказал с потолка, поскольку никаких примеров из своего или чужого опыта вы не привели.

о том, что, дескать, делать из плюсов эрланг не надо

Вы как-то странно трактуете смысл моих слов... Пользуясь вашим приемом повторения, повторю еще раз (уже в четвертый?) свой тезис: если задача просто решается при помощи ФП, то совершенно безразлично какой для этого берется язык: кресты или эрланг - сложность программирования будет везде одного порядка, хотя в крестах, возможно будет больше писанины. Если задача не решается легко с помощью ФП, а нужно ФП натягивать через одно место, то в крестах так делать не надо, т.к. есть другие способы решения таких задач, а в эрланге выбра нет. Поэтому кресты лучше и универсальнее эрланга и ТС зря так расстраивается. Все, никаких других смыслов в моих словах искать не надо.

И не надо мне тут рассказывать что ФП в крестах не пойдет, проект загнется и т.п. чепуху. Данный вопрос вообще не технический - тут все решает организация и финансирование, а не вкусы или умения программистов.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Он начинается со слов «я считаю»

Хорошо, я могу повторить его без этих слов. Хотя вы задали свой вопрос именно так: «вы считаете, что..?»

поскольку никаких примеров из своего или чужого опыта вы не привели.

Считаете ли вы, что «все вокруг не станут соблюдать гарантий, которые энфорсятся ФП-языком. И что ты сам через месяц их нарушишь, пусть даже невольно.» - неверное утверждение?

Пользуясь вашим приемом повторения, повторю еще раз (уже в четвертый?) свой тезис: если задача просто решается при помощи ФП, то совершенно безразлично какой для этого берется язык

Да, если задача решается просто, то безразлично, какой берётся язык.

то в крестах так делать не надо, т.к. есть другие способы решения таких задач, а в эрланге выбра нет. Поэтому кресты лучше и универсальнее эрланга и ТС зря так расстраивается.

И какое это всё имеет отношение к утверждению «из крестов вы можете/не можете сделать себе маленький эрланг»?

Miguel ★★★★★
()
Ответ на: комментарий от alienclaster

Хорошая технология, методологи разработки - да.

Ну, сейчас - персональный аналог гуглоридера. В связи с закрытием последнего.

Это не (доказанное) преимущество

Это преимущество. И мне лично глубоко до фонаря, кто его считает доказанным или не доказанным.

Хорошая технология, методологи разработки - да.

«Методология разработки» есть одна. Поправлюсь: их много, но работает только одна.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Хорошо, я могу повторить его без этих слов. Хотя вы задали свой вопрос именно так: «вы считаете, что..?»

Повторять не надо, я понял, что вы это умеете. Но не надо также и выдавать свое субъективное мнение за аргумент. Вы со мной не согласны? Ок. Имеете полное право.

Считаете ли вы, что... - неверное утверждение?

Да, считаю.

И какое это всё имеет отношение к утверждению «из крестов вы можете/не можете сделать себе маленький эрланг»?

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

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

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

Ну, звиняйте, никак не мог понять эту вашу «метафору» таким образом. Хотя бы потому, что Эрланг, ОКамл и Хаскель - принципиально разные языки, и почему у вас «маленький эрланг» стал синонимом ФП, мне лично понять не дано.

Да, считаю

И поэтому вы написали на это «Вполне возможно»? Это ваше фп (комментарий)

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

А по существу, может назвать пару киллер-фич именно этого вашего даб^Wхапстепа в сравнении с выше обозначенными фреймворками?

alienclaster ★★★
()
Ответ на: комментарий от nanoolinux

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

Vit ★★★★★
()

Потом понимаешь, что всё бренно в этом мире и пишешь попроще и побыстрее, как принято, идешь домой и занимаешься другими делами.

Legioner ★★★★★
()
Ответ на: комментарий от Miguel

почему у вас «маленький эрланг» стал синонимом ФП

Потому, что ТС писал именно об эрланге. Вы вообще тему читали, или сразу пофлудить решили?

И поэтому вы написали на это «Вполне возможно»?

Возможно не значит обязательно. В языке, который не заставляет программиста использовать ФП, и даже никак не поощряет к этому, вполне возможно, что при решении задачи может оказаться, что проще и дешевле не использовать ФП, а найти другой подход. А может и не оказаться и ФП будет лучшим вариантом.

Вы же, напротив, утверждаете, что ФП на крестах не продержится и двух недель в любом случае. Безоговорочно. Вот с этим я не могу согласиться. Я считаю, что вокруг люди не тупее меня и если я могу так писать и понимать чужой код в ФП стиле на крестах, то и другие смогут разобраться.

no-such-file ★★★★★
()

Прекрасная история! :3

Y ★★
()
Ответ на: комментарий от no-such-file

Я считаю, что вокруг люди не тупее меня и если я могу так писать и понимать чужой код в ФП стиле на крестах, то и другие смогут разобраться.

Я буду вырезать гланды через задницу, ибо иначе просто не умею.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.