Shub
|> Option.map (fun preceedingText -> let lines = preceedingText.Split '\n' |> Array.rev |> Array.tail lines
Shub
и записка из зрительного зала: https://github.com/fsprojects/FSharpLint/commit/8712bd0439f240a9a1e260d3232500a65607e898#diff-99be4237cc65b6413deabf2161d040f0R68
Shub
Господи, когда ты их всех уже поубиваешь?
Shub
if isEnabled && isSuppressed ruleName |> not then
Shub
Roman
|> Option.map (fun preceedingText -> let lines = preceedingText.Split '\n' |> Array.rev |> Array.tail lines
Справедливости ради, это легко прочесть и исправить
Roman
Это вам не архитектурный пиздец, который ещё наши дети увидят
Doge
Справедливости ради, это легко прочесть и исправить
Ну читать такие лямбды это так себе. Удобнее когда они как отдельные функции в let биндинге объявлены
Igor
|> Option.map (fun preceedingText -> let lines = preceedingText.Split '\n' |> Array.rev |> Array.tail lines
Это считает количество пробелов в начале строки, но не эффективно. А какие ещё тут проблемы?
Ayrat
Андрей вот пример, что я и про скалу могу хорошо писать!
Ayrat
Мне понравилось как в скале логинг организован. Подключаешь к любому классу трейт LazyLogging и все, тебе доступен логгер. его реализация в общем любая, таргеты и все настраивается как в нлоге, в конфиге снаружи. В коде все чисто и то что это трейт, позволяет юзать этот трейт в других трейтах
Ayrat
Ну скала как ОО язык очень даже хороша.
Ну это скорее про то что тайп классы охуенны
Doge
Ну это скорее про то что тайп классы охуенны
Ну примешивание трейта - это не тайп классы.
Doge
Это как раз к скаловской ОО системе.
Ayrat
А кстати да, тут не тайп класс
Igor
я может быть уже спрашивал, но забыл. тайпклассы поддерживаются на уровне рантайме jvm?
Ayrat
Дотнет так тоже может
Ayrat
Но у нас чот в дотнете общий логер интерфейс не прижился
Ayrat
Кстати почему?
Doge
я может быть уже спрашивал, но забыл. тайпклассы поддерживаются на уровне рантайме jvm?
Нет. На уровне рантайма - это просто дополнительный аргумент, через который передается интерфейс.
Doge
По сути как хаскель делает с тайпклассами, где не может или не хочет их синлайнить
Igor
там в твиттере кто-то сказал, что CIL хоть и называется Common IL, по факту является CSharp IL. с jvm аналогичная история?
Igor
кто-то троллит?
дон сайм наверное))
Igor
он же там выложил всю фигню про кортежи в фарше
AlexB
|> Option.map (fun text -> text.ToCharArray() |> Array.takeWhile Char.IsWhiteSpace |> Array.length) |> Option.defaultValue 0
Может, автору M$ доплачивает за загрузку Azure, или где вы там хоститесь.
Igor
там в твиттере кто-то сказал, что CIL хоть и называется Common IL, по факту является CSharp IL. с jvm аналогичная история?
Под сути да их байт-код почти один к одному с джава кодом и джит оптимизировае под джава конструкции
Vasily
Хммм... в скала чатике картина "дед с батей сцепились по пьяни"
Vasily
@omgszer , Нижникову невозможно ничего доказать, он себя считает самым умным
Roman
TF vs ZIO?
Roman
или на какую там тему принято сраться
Vasily
Да там за акку бьются
Vasily
Какую-то дичь Олег затирает
Λ ll И K X
Ayrat
а чо с ней?
Там подоспело определение декларативности. Уникальное как та самая кривая вилка в ряду нормальных
Λ ll И K X
Vasily
Это Нижников
Vasily
У него осеннее обострение
Ayrat
жги!
там надо тред читать. В общем все эти ваши монады с чистыми функциями это императивное говно
Roman
интересно. А что нынче модно?
Анна
Vasily
Стрелки я знаю, поп-группа такая была
Doge
там надо тред читать. В общем все эти ваши монады с чистыми функциями это императивное говно
Ну я понял его мысль, но это какое-то очень странное определение. Типа если ты размышляешь об этом коде в императивном стиле - то он императивный. Если декларативно - то он же декларативный.
Ilya
Тогда надо просто не размышлять о коде. И всем запретить. И никто не узнает, какой он на самом деле.
Igor
тьфу, тут кто-то ранее говорил, что чистых функций не бывает впринципе, любая функция производит побочный эффект в виде тепла))
Анна
А ленивая функция ещё не написана, когда её вызвали. Небритый программист нехотя встаёт с дивана и идёт её писать 🤔
Doge
А чей это тезис? Готов под ним подписаться)
Я подозреваю, то те альтернативы монадам которые будет продвигать Нижников тебе ещё больше не понравятся.
Igor
Да да, видал я его доклад на fpure
Vasily
Парень с ума сходит потихоньку
Анна
Парень с ума сходит потихоньку
в открытый типизированный космос вышел?
Vasily
в открытый типизированный космос вышел?
Вышел он давно, теперь, судя по косвенным данным, повстречал инопланетян
Doge
Он вообще в пиздец какой-то ударился
Если речь про стрелки, то всё норм же. Хорошая концепция с очень большим потенциалом. Вопрос в том, что прям удобного способа на них писать пока никто не нашел. Вариант с переписыванием кода как в Нижниковской volga может и сработает.
Vasily
ШО такое стрелки?
Vasily
Выдумают, млин, терминологий
Vasily
И обмазываются ими
Vasily
Потом окажется, что это обычные лямбды
Doge
Потом окажется, что это обычные лямбды
Это абстракция над какими-то фукнция подобными вещами, которые можно композировать как функции. Удобны для описания всяких пайплайнов и тому подобного. Само опредление: http://hackage.haskell.org/package/base-4.12.0.0/docs/src/Control.Arrow.html#Arrow Некий гайд (не уверен, что прям хороший): https://en.wikibooks.org/wiki/Haskell/Understanding_arrows
x
Кстати почему?
вот это? https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger
x
так про него не знает никто )
Vasily
Где-нить есть в нотации для более тупых?
Igor
а чо там было?
Да про стрелки и макросы для удобного использования https://youtu.be/NBEzXO1xezU
Doge
Где-нить есть в нотации для более тупых?
Вот основная проблема со стрелками. Не видел ещё ни одного хорошего туториала по ним. Сейчас попытаюсь найти, но не уверен, что выйдет. Есть оригинальная статья, но она от академиков: http://www.cse.chalmers.se/~rjmh/Papers/arrows.pdf
Vasily
Звук отвратный
Λ ll И K X
теоркат для программистов
Doge
эммм а как же книга бартоша милевски?
Там не говорится про то, как строить на них программы
Doge
Там говорится про их категорийный смысл