Ayrat
если там арреи, то какая разница?
а я знаю? два варианта или C# код писали бездари, которые не смогли передрать алгоритм с F# или FSC генерит лучший IL чем Roslyn что более вероятно?
Hog
я тут давеча смотрел ДотНексты. Вынес прикольный трик. Массивы с конца итерировать для уменьшения количества баундчеков
Ayrat
и не надо было бы смотреть дотнекст!!1
Vladislav
а если бы ты читал pro.net знал бы об этом месяцы назад
начитался пронета, потом принес в продакшены il rewriting, хаки и гейские оргии
Vladislav
и все офигели
Hog
порнета :)
Vladislav
Оформил в виде твита: https://twitter.com/EgorBo/status/1066662708504903681
Vladislav
Собсно всё в https://github.com/dotnet/coreclr/issues/1279 но настроить ILLink - это ппц, всё утро убил
Vladislav
порно с конями
Vladislav
убирает зануление памяти у stackalloc
Hog
ну, я заджойнился... не знаю, на сколько меня хватит
Roman
я тут давеча смотрел ДотНексты. Вынес прикольный трик. Массивы с конца итерировать для уменьшения количества баундчеков
Обмазаться такими хаками, чтоб баундчеки соптимизировать, а потом вколоть по вене автофак, автомаппер и ЕФ. Идеально.
Hog
я не говорил, что я его собрался пихуить всюду :)
Hog
почитал коменты и траванулся к херам
зачем? там же изначально было всё понятно :)
Roman
я не говорил, что я его собрался пихуить всюду :)
эт я так, видал просто подобное. От тебя я бы такого и не ожидал)
Hog
эт я так, видал просто подобное. От тебя я бы такого и не ожидал)
да у меня и арреев-то и нет считай что нигде
Ayrat
https://twitter.com/kot_2010/status/1067107760943362048
Roman
Ого, в декабре хабр мультиязычную версию собирается запускать
Ayrat
норм)
я честно сказать нихуя не понял)
Ayrat
прошёл по ссылке первой, там какая-то дичь, видимо для фейбла
Vladislav
я честно сказать нихуя не понял)
в элмише сишарпные билдеры, в его примере пайпы
Vladislav
типо не пишите билдеры когда бох дал пайпы
Hog
я честно сказать нихуя не понял)
кому-то не понравился флюент-инерфейс
Ayrat
а на картинке какая-то ядерная дичь с опшнами
Ayrat
null |> fun x -> if (box x = null) ...
Ayrat
типо не пишите билдеры когда бох дал пайпы
да, но посмотри что он на пайпах написал
gsomix
https://devonburriss.me/how-to-fsharp-pt-6/
gsomix
Вот правильная.
Ayrat
https://devonburriss.me/how-to-fsharp-pt-6/
подожди, так код реальный
Ayrat
О_О
Ayrat
//string -> string let makeEmail name = let sanitizeString (s:string) = null |> (fun x -> if (box x = null) then None else Some(x)) name |> Option.bind sanitizeString |> Option.orElse (Some "info") |> Option.map (fun n -> sprintf "%s@acme.com" n) |> Option.get
Ayrat
я стал понимать ещё меньше
Igor
Option.ofObj
Hog
Option.map |> Option.defaultValue
Hog
зачем вся эта жесть?
Ayrat
я нихуя не понял, что за мега конструкция null |> fun x -> if (box x = null) then Non else Some x
Ayrat
бля, этот код вообще нихуя не делает
Roman
дада, тока хотел написать
Ayrat
зачем боксить налл и сравнивать с null
Roman
минут 5 в него вдуплял
Roman
параметр (s:string) там вообще игнорится тупо
Ayrat
я думал это шутка юмора от Василия, типа смотрите как можно написать охуенно бесполезно и много
Hog
а там нет никакой магии в Option.bind?
Ayrat
а оказывается это пример из чьей-то стати
Roman
а там нет никакой магии в Option.bind?
там никакая магия не поможет, этот охуенный санитайз всегда возвращает None
Ayrat
там никакая магия не поможет, этот охуенный санитайз всегда возвращает None
я бы больше сказал, вся эта функция превращается в let makeEmail _ = "info@acme.com"
Ayrat
без вариантов
Roman
у меня бы так фантазии не хватило написать. Это ж надо сделать так, что компилится и делает как будто то, что надо, только нихуя не то
Roman
Я теперь не усну
Anonymous
null пайпить это круто null |> (fun x
Hog
Вот правильная.
Скажи, что мы тут все дебилы и не поняли этого кода?
Ayrat
Я теперь не усну
я думаю это чей-то прикол
Roman
топ 10 пранков которые вышли из-под контроля
Anonymous
лучше еще и в /dev/null писать сразу, чтобы гармонично было а то там в /dev/null е-мейлы заканчиваются, надо бы свежих
Hog
ну, ты ж ссыль запостил
Hog
тебе и отвечать!
gsomix
Не хочу.
Anonymous
кстати лямбду не обязательно |> Option.map (fun n -> sprintf "%s@acme.com" n) достаточно |> Option.map (sprintf "%s@acme.com")
gsomix
Current status.
gsomix
тебе и отвечать!
Я лишь скажу, что это все не очень красиво и недружелюбно. :(
Hog
нувоот :(
Ayrat
Похоже Василий автора не полюбил https://twitter.com/kot_2010/status/1066741583398223875
Ayrat
но да, статьи вырвиглазные
gsomix
Уже сгорели? https://github.com/dominictarr/event-stream/issues/116#issuecomment-440927400
gsomix
Кстати, а кто-нибудь Василия на московские бирапы приглашал? :)
gsomix
а кто-нибудь с ним контакт имеет?
Ну, ему всегда можно в твиттере написать.