Pavel
А контекст какой? Внедрить F#-сборки в проект или функциональные фишки на c#?
Anonymous
примеров коды только на C# )
Pavel
А ну
Pavel
Pavel
type MatchResult = | Match of bool | Undefined of string
Pavel
Во славу f#
Sergey
примеров коды только на C# )
Ну блин тогда хз, покажи просто разницу кода и как выше скзаали что вывож типов работает *ваш мимокрокодил*
Vladyslav
Anonymous
я просмотрел. это не то, очень слабенько. там чувак явно сам не разобрался. надо с позиций жизненного опыта и хороших щнаний, но простым языком. как физик-ядерщик школьникам объясняет основы ядерной реакции что ли. на пальцах.
Vladyslav
иммутабельность и выражения не проканают, поэтому пусть hof используют
Pavel
Я вообще хз
Vladyslav
pipline на C# вроде норм выглядит
Pavel
Иммутабельность на c# это жопа
Pavel
Record в 8.0 не добавят
Pavel
Система типов убога
Pavel
Я хз про что ты будешь расказывать
Vladyslav
а, еще Result можно сделать нормальный
Oleg
pipline на C# вроде норм выглядит
особенно стектрейс
Anonymous
особенно стектрейс
ну-ну батенька. стэктрай Task<T> же читаешь?
Vladyslav
особенно стектрейс
на ФП нет ошибок!
Vladyslav
особенно стектрейс
пайплайны не настолько длинные и сложные чтобы нельзя было их развернуть быстро (на C#)
Oleg
не, ребят я как раз типа "тот ООПшер" мы активно используем Rx, LINQ которые близки идеологически к ФП и чтение стектрейса это адовая боль пайп оператор без поддержки компилятора это смерть отсутствие паттерн матчинга убивает любое желание Either аля Result and Option потому разок протестировав F# мы получили оргазм от нормального стектрейса
Oleg
потому сейчас серьезно думаем тащить всю логику туда, и работу с UI тоже
Anonymous
по третьему п. это и в не функциональных языках встречается. так что "и чоа"?
это к тебе вопрос - и че? речь же не о том, что этого нет, а о том, как этим пользоваться, чтобы не стрелять себе в ноги.
Oleg
писать на шарпах в ФП стиле будет болью всегда пару LINQ сделать это ок потому полумеры это плохой вариант
Vladyslav
так вроде же нет
Anonymous
ФП - это не синтаксис и стэктрейс в последнюю очередь. ФП - это культура мышления программиста и его подход к решениям.
Vladyslav
ты же хочешь ФП в ООП
Oleg
это не глупость, а реальность мыслить иначе и страдать это не то, чем хотят люди заниматься на работе
Anonymous
и писать фукнционально можно почти на чем угодно на самом деле. не всегда с полным комфортом, но при этом получая весь профит.
Anonymous
знаете, когда меня уверяют, что фукнциональное программирование это так дико сложно и все вокруг старадют, я сразу понимаю, что человек еще не въехал, собственно, в само функциональное программирование.
Vladyslav
как сохранить иммутабельность на C# и при этом нормально копировать? (я правда не знаю нормального способа, может и меня просветите)
Anonymous
то же самое с математикой. как только слышишь скулеж о том, что там все нипанятно и очень сложно, так сразу ясно, что чувак просто нихуя не соображает.
Oleg
так речь не о сложности, ФП это просто по другому
Oleg
а С# компилятор никак не помогает в работе в ФП стиле
Vladyslav
проще уже убедить людей писать на F#
Oleg
именно
Anonymous
а С# компилятор никак не помогает в работе в ФП стиле
внимание, вопрос - а как пишут на Хаскеле в notepad.exe?
Anonymous
внимание, другой вопрос
Anonymous
у математиков нет компилятора, они в качестве side-effect'а они изобрели программирование.
Anonymous
и продолжают решать неизмеримо более сложные задачи. как?
Vladyslav
так, тебя несет
Anonymous
нисколько.
Oleg
внимание, вопрос - а как пишут на Хаскеле в notepad.exe?
ну это же смешно ты предлагаешь людям пересаживаться с авиалайнера на самокат ну да едет, ну да по-другому а зачем им это?
Vladyslav
мы лишь про то, что на C# чистый ФП это боль
Oleg
тот же F# поддерживается нормально и VS и Rider
Oleg
и перейти на него куда проще
Anonymous
я ничего никому не предлагаю. я спрашиваю.
похоже на провокацию, а не вопрос. лаптем по лбу типа
Oleg
чем натягивать ФП на C#
Anonymous
чем натягивать ФП на C#
ФП на C# натягивать не нужно. синтаксис не так удобен, да. на этом все. ну это для больших проектов приемлемая плата вполне.
Oleg
ты когда-нибудь писал иммутабельные типы на шарпах?
Anonymous
ты когда-нибудь писал иммутабельные типы на шарпах?
я давно перстал заниматься такой ерундой. они далеко не везде нужны и не в этом фишка ФП. если мне нужна иммутабельность, то как правильно это прицельное место и под него я прицельно реализую (псевдо)иммутабельность. и ты не поверишь - это приносит профит минимальной кровью и компилятор продолжает мне помогать.
Vladyslav
то нужен ФП, то не очень
Anonymous
не, вы мне за имуутабельность типов трете, а я вам про культуру мышления. вы мне про землю, я вам про небо.
Anonymous
мы не договоримся.
Oleg
если бойлерплейт это малая кровь если отсутствие нужных оптимизаций это малая кровь если ФП в неогороженном мире нулей и эксепшенов это малая кровь если доисторическая система типов это малая кровь если доисторические дженерики это малая кровь если отсутствие банальных языковых конструкций из любого ФП языка это малая кровь то да
Oleg
так на С# можно писать в ФП стиле
Oleg
но те самые ООПшеры просто поржут с таких предложений
Anonymous
бойлерплейт вообще не считаем в мире ООП. ты когда в последний раз в релаизацию самых простеньких паттернов смотел? особенно thread-safe версии? дальше. оптимизации? ты мне сейчас про F#? ха и еще раз ха! дальше. за нули и экспешины отвечаешь ты как программист и если ты не в состоянии оградить себя от этого, то тебе нужно этому учиться; идеи фукнционального программирования тебе в помощь. у меня таких проблем нет. про доисторические generic'и не понял наезда вообще.
Anonymous
имхо, вы ругаете систему символов и синтаксис за то, что она не такая, как та система символов, которая кажется вам более подходящей.
Anonymous
а я говорю про суть, которую можно выразить с помощью любой такой системы символов.
Anonymous
как раз тот случай, когда "луна" спутан с "пальцем, на нее указующем"
Vladyslav
ну, покажешь потом, на что это будет похоже.
Sergey
Тащем та и на асме можно писать в фп тогда
Anonymous
смысл же не в том, чтобы все начали мгновенно писать одинаково, называть типы одинаково, называть типичные методы одинаково и бла-бла. смысл в том, чтобы само понимание проникло в критическую массу активных разработчиков и чтобы это понимание искало выход и ответы на вопросы.
Anonymous
а дальше - "сад растет сам".
Vladyslav
я думаю ты не первый, кто решил что было б круто C# на ФП рельсы перенести
Anonymous
т.е. само понимание проблем, основ логики, понимания глубины взаимосвязей, а не "просто кодю и оно работает". проблема сейчас именно в этом - в понимании. как только оно появится, люди выберут себе подходящую для них систему символов.
Anonymous
и кто решит, что ему достаточно lisp'а, будет писать на lisp'е. а кто-то на Go. а другие на Scala.
Vladyslav
та вроде нет
Anonymous
так и не объясняей. с null'ом все сталкивались. с громоздкими паттернами - тоже. начинать нужно с простого, в этом и смысл.