169 похожих чатов

Про сложность ФП и F#. Тут нужно обращаться к мастерам религиозных

проповедей. :) Например, к докладу "Simple Made Easy" Рича Хикки.

Ты говоришь, что ФП и F# — это сложно, а потом показываешь пример, который требует понимания "partial application, currying, bind, pipelines". В этом смысле сложность противопоставляется понятию easy/familiarity. Это сложно, потому что непривычно, незнакомо. Kotlin делает ставку на привычность, он хорошо заходит тем, кто знает Java или C#.

Стиль кода на F# изменяется в процессе обучения, ознакомления. Никто не запрещает писать в привычном C# или Python стиле, мутабельно, со стейтфул ООП иерархиями, не задумываясь о сайд-эффектах, внедряя кучи зависимостей. В итоге можно услышать законное "фи" от товарищей. Но кого это волнует, когда нужно решить задачу? ;)

В чем профит? Когда ФП язык становится знакомым и привычным, то сложность (в смысле complexity) уменьшается: композиция, иммутабельность, чистота, dependency rejection, DDD — это действительно хорошие идеи. Все это можно испортить неидиоматичным кодом, бороться можно чтением:

- fsharpforfunandprofit.com
- http://blog.ploeh.dk

@forcewake

3 ответов

7 просмотров

Шикарный пост!

Мне нравится что дискуссия переходит уже в формат блог постов)

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

Похожие вопросы

Обсуждают сегодня

подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
8
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
Добрый день. Абракадабра в 12-й студии ввела новый тип поля БД TSQLTimeStampOffset, использую в постгресе timestampz и вот с 12-й версии начались чудеса! До этого поля times...
Delphi Photo
9
Коллеги, здравствуйте! А можно узнать ваше мнение относительно Wolfram Mathematica vs Julia? Просто у меня стоит выбор между тем, чтобы продолжить преподавать Wolfram Mathemat...
Илья Гаража
10
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Утра доброго. Просветите пожалуйста. Хочу сделать rest сервер на делфи. Посмотрел 3 фреймворка: dmvc, Mars, mormot. Ни в одном из них не упоминается ассинхронная обработка вхо...
Сергей Бычков
6
Обновленный chat тестили уже господа? Готовимся на заводы ? Простой проект на ларавель собирает за 1 ответ..
Jacov Borisov
14
Карта сайта