Ayrat
Где ошибка User list is empty?
ну добавь в обработку Choice1of2
Romɑn
Уйди
*уходит за креком*
Ayrat
точнее ща
Nikolay
Прогнали создателя чатика
Ayrat
Vasily
Прям хочу что-нить на хопаке написать, но для этого надо взять себя в руки и уволиться для начала
Nikolay
Вот это бы ещё как-нибудь завернуть в билдер!
x
0of2 тогда
Nikolay
Кто у нас тут по билдерам?
Nikolay
@vshapenko ждём
Éminence grise
Напиши ему через job {}
Vasily
Зачем тебе билдеры с хопаком?
Ayrat
аааа
Ayrat
да, я не люблю билдеры, но они конечно есть
Vasily
Надо
Это к Ayrat
Vasily
Там они есть
Vasily
Но автор упоролся по кастомным операторам
Vasily
Это тоже своя тема
Ayrat
Ayrat
билдер, так билдер. По мне так первый вариант получше
Ayrat
на тип функции не смотрите, я там стабов накидал выше
Ayrat
они как-то криво отрезолвилсь
gsomix
bump
Для перфоманса еще.
Vladislav
Для перфоманса еще.
вот понять бы когда оно надо
gsomix
Но скорее всего оно тебе не нужно, и остается только SRTP.
Romɑn
О, кстати inline rec невозможен если я правильно понимаю
gsomix
Который страшный как атомная война (но не страшнее, чем операторы в гопаке).
Ayrat
Хз. сртп чот совсем плохой.
Ayrat
Я не умею
gsomix
Nikolay
Я не умею
А ты попробуй
Nikolay
А потом придёт Сайм
Nikolay
И скажет
Nikolay
few days of work
Ayrat
Да, способ верный. Знать бы что чинить. Их по-моему надо не латать а вообще чот другое делать
Ayrat
текущий синтаксис делали инопланетяне
gsomix
few days of work
Все потому, что вы сначала что-то делать начали, а потом выяснили, что нужно было сделать.
gsomix
Нужно починить синтаксис, починить резолв методов и операторов расширения.
Ayrat
let inline isAbsoluteProductGreaterThanSum'< ^a, ^b, ^c when (^a or ^b): (static member (+): ^a * ^b -> ^c) and (^a or ^b): (static member (*): ^a * ^b -> ^c) and ^c : (static member Abs: ^c -> ^c) and ^c : comparison> a b = let productOfAb = ((^a or ^b): (static member (*): ^a * ^b -> ^c) (a, b)) let sumOfAb = ((^a or ^b): (static member (+): ^a * ^b -> ^c) (a, b)) abs (productOfAb) > sumOfAb так НЕ должно быть
gsomix
И абуз фичи.
Ayrat
синтаксис говно. напоминает скалу в её худших проявлениях
Ayrat
или новые генерики в го
gsomix
Почини!
Ayrat
это пример как сделать через сртп простую вещь let inline isAbsoluteProductGreaterThanSum a b = abs(a * b) > (a + b)
Ayrat
компилятор может сам проссать все аннотации, да
gsomix
компилятор может сам проссать все аннотации, да
Как бы с этим расчетом и делалось.
Ayrat
да он сам может только простые вещи делать
Ayrat
чот сложное и надо ручками хуярить сртп с синтаксисом выше
gsomix
да он сам может только простые вещи делать
Все верно, для этого и писалось.
Ayrat
юз кейс для сртп отличный - утиная типизация в статике
Ayrat
но синтакси такой вымораживающий
gsomix
Просто сложные штуки с SRTP нужно выжигать как и кастомные операторы.
Ayrat
да, поэтому и не пользуюсь
Ayrat
но операторы люблю ( /me гладит оператор *<+->= )
gsomix
На самом деле почти все продвинутые фичи в F# нужно чинить.
Ayrat
да не будут их чинить, забей там боязнь у команды как бы чо не сломать в совместимости (мы ж ентерпрайз язык, а не хипстота какая) и постоянная оглядка как чо делают в C# чтобы на их решения ориентироваться
gsomix
В F#5
Ayrat
Ну это как HalfLife 3
Ayrat
он обязательно будет
Ayrat
но потом
gsomix
Нет, конечно.
gsomix
RFC уже есть, Сайм о своих планах, кажется, четко писал.
Vladislav
Почини!
вроде ж чинит чувак
Vladislav
чтоб интерфейсы и красиво
gsomix
вроде ж чинит чувак
Их там несколько. :)
gsomix
Кто-то чинит синтаксис, кто-то резолв.
gsomix
- https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1024-simplify-call-syntax-for-statically-resolved-member-constraints.md - https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1043-extension-members-for-operators-and-srtp-constraints.md
gsomix
Второй, конечно, прекрасен.