Hog
Hog
знаю, что медленнее, но у меня не хайлоад :)
Aleksandr
Сейчас выглядит как объявление, смешанное с инициализацией в одном
Ayrat
меня до сих пор бесит что в C# при учёте наличия var постоянно нужна эта еботня
вместо
var func = x => x + 1;
надо писать
Func<int,int> func = x => x + 1;
Aleksandr
То есть без вот этого '='
Ayrat
какого хуя?
Pavel
Ayrat
т.е. там var в принципе воткнуть нельзя
Hog
Ayrat
и let!
i see what you did there!
Aleksandr
Все как положено - let на месте и (=) на месте
Aleksandr
Поэтому это не выглядит из ряда вон
Aleksandr
А к локальным функциям в C# никак привыкнуть не могу. Еще с локальными функциями постоянно кажется, что я на одну вложенность выше нахожусь
Pavel
локальные функции можно использовать рекурсивно
Pavel
чем заменить предлагаешь?
Aleksandr
Ivan
Давай )
https://gist.github.com/dohly/ece17c8c3ea20c9d6bd3c51f9f1f11c7
Roman
А поскольку сишарп состоит из неявного приведения типов чуть более чем на половину, хуйцов вместо "понять исходя из использования"
Roman
опередил)
Aleksandr
Vasiliy
Ivan
ну там экстеншны можно поудалять все если не надо
Ayrat
Что только люди не делают чтобы на F# не писать
Ayrat
А в чём смысл этого каста?
public static implicit operator Option<T>(Option op) => new Option<T>(null);
Ayrat
приводить недженерик опшн в дженерик?
Ayrat
ааа, Option который недженерик всегда None
Roman
Ayrat
Мб void?
сложно, сложно.
Я чот давно в C# код не втыкал
Ivan
Ayrat
там надо ещё сделать
private Option() {}
иначе можно сделать
var opt = new Option();
Ayrat
и хз что это
Ayrat
а вообще его надо сделать static
Ayrat
весь Option класс
Ivan
ну да, кстати
Vasily
Наркоманы грёбаные
Shub
F# reminds me of Dart
they are kind of dead. some people will point out various signs of life for each one.
but still you can kind of see they are not super serious/critical.
I get the vibe that they are being kept alive because Microsoft/Google don't want to piss off and lose the brilliant people working on them.
so they are like "there there .. you good engineers keep yourselves busy with your stuff ... let us know if you need anything ... thank you ... we'll leave you guys to it".
Ayrat
Shub
https://www.reddit.com/r/fsharp/comments/91gg6j/is_microsoft_serious_about_f/
Ayrat
ты читаешь реддит 7ми месячной давности?
Shub
новых страданий пока не завезли, перечитываю старые
Ayrat
Я сегодня нагенерил несколько сотен тестов одним махом с помощью компилятора.
Ещё чуть чуть и код ген рядом.
Вкратце. Грабим AST из файла, выцепляем все Type Declarations, отбираем те, у которых объявлены и static member ToJson и static member FromJson и собсно генерим для них говнотесты.
https://gist.github.com/Szer/eb034950b4c70146aef7f21328c8b30e
Пара патернов туда-сюда и получается так
|> List.filter (function
| IsStatic & MemberName "FromJson"
| IsStatic & MemberName "ToJson" -> true
| _ -> false)
думаю написать кодогенератор промышленный, с такими объёмами говнокода руками не справиться
Hog
какие милые тупели
Hog
я верю :) если там тебе один элемент в середине всего-то и нужен
Hog
а я, вот, тренировался вчера
https://gist.github.com/grishace/f6224429a3781e93165bc0c9aa0ee7f0
Hog
если у меня ком завёлся тока через рефлекшон - думаю вот таких вот лямбд накомпилить заместо. должно же сработать?
Ayrat
стаковерфлоу так делал
Ayrat
они вместо рефлекшна в рантайме лямбды собирали и компилили на ходу
Ayrat
сказали что были удивлены скоростью
Hog
я спецом бенчмарк нарисовал
Hog
тоже был удивлён :)
Ayrat
Ну да, эт тема быстрая. И гораздо проще чем рефлексия
Hog
ну смотря для чего проще :) кодить - нет :)
Hog
для консюмера - да
Vasily
Скомпиленная лямбда однозначно быстрее рефлексии
Ayrat
мне кажется проще собирать выражения в рантайме чем не обосраться с правильным созданием типов и прочего говна
Ayrat
там куда ни шагни будут какие-нибудь страсти типа TypeActivationException
Ayrat
ну потому что она точно так же вызывается напрямую
Ayrat
ты ж её скомилил
Hog
буду вечером пробовать :) о результатах доложу
Igor
Hog
F#-версия будет называться Fart!
Igor
Объективно, Dart - нах не нужен сам по себе.
А C# посасывает у F# как язык
Igor
Igor
Мемас (+_) на тему (про Flutter и Dart)
Igor
Меня просто тошнило от Dart, когда я писал под Flutter
Hog
Igor
Для важных переговоров 😎
Ayrat
я чот туплю, в булевой алгебре как внести знак отрицания внутрь дизюнкции и сохранить её?
есть такое !(A | B)
надо чтобы стало
C | D
Hog
ну это ж !A && !B
Ayrat
эт понятно