Ayrat
"не переусложнять!"
Pavel
вся эта фигня даже через аттрибуты не существует (если уж язык не усложнять)
Vladislav
"не переусложнять!"
но он кстати слушает, он делал анонимные объекты как в сисярпе, но потом не совсем понял зачем оно надо и хотел завернуть
Vladislav
там пришли и дали пример с даппером, он всё таки оставил фичу
Vladislav
(вроде оставил)
Ayrat
Анонимные рекорды было б хорошо.
Hog
Hog
Вовсю использовал в с#/js
Ayrat
Для?
Того же самого что и анонимные тайпы в сишарпе - массивных линк запросов где надо сохранить промежуточное состояние и не делать для этого тупль 5ой арности или новый тип
Hog
Ну... пожалуй соглашусь
Hog
Новый тип, кстати, только лучше на читабельности скажется
Hog
Я не дорассказал :) про js
Ayrat
И в сишарпе они создаются ровно как рекорды в фшарпе кстати
Hog
Hog
Продолжаю :) после стремительного перехода на safe-stack - анонимные классы в этом потеряли актуальность - есть shared record type - он же ответ апи, его же получает клиент. Всё синхронизировано - красотищща
Ayrat
Hog
Это ф# сверху донизу - сатурн/жираф - сервер, фэйбл/элмиш - клиент, фулма - стили, фэйк - билды
Hog
Ф - фантастика :)
Hog
https://safe-stack.github.io/
Ayrat
Не, сейф я знаю
Ayrat
Шаред рекорды - это что?
Hog
В отдельном модуле рекорд тайпы. Юзается и клиентским и серверным кодом
Hog
Он просто в темплейте называется Shared.
Ayrat
Ясно) это не избавляет от их написания
Hog
Да, но раньше в с# было пофиг, а теперь - нет
Pavel
Pavel
потом выпилили
Romɑn
Romɑn
Pavel
а выпилили их как раз за анонимность. типа с# не найдет
Nikolay
В F# в кортежах нет именованных параметров?
Nikolay
Как в C#?
Nikolay
Это к разговору о анонимных типах
Ayrat
в анонимных туплях нет
Nikolay
Печаль
Ayrat
ну это кстати не печаль, т.к. деконстракт удобный в переменную с именем
Nikolay
А с именованными разве деконстракт бы отличался?
Éminence grise
Строго говоря именовааных туплей нет, но иногда есть 😊
Если тупля в кейзе DU то там есть, и несколько по другому шаблоны работают. Кстати, так руки не дошли проверить - тупля ли это после компиляции или генерирует рекорд. И как это работает со struct tuple.
Nikolay
Ну это же не анонимненько получается?
Pavel
Vladislav
Éminence grise
Проверил:
type DU1 =
| A of struct (int * int)
Так можно.
type DU1 =
| A of a: int * b: int
Так то же.
type DU1 =
| A of struct (a: int * b: int)
Так нет.
Romɑn
Vladislav
Éminence grise
type DU1 =
| A of a: int * b: int - а это компилируется в класс, в котором поля a b, а не фига не в тупл вложенный.
Vladislav
ну, в целом это наверно логично
Vladislav
в шарпе именованые тупли это сахар компилятора
Vladislav
там внутри всё равно Item1 Item2
Romɑn
:|
Все время кажется что это робот из Ну Погоди
Vasily
Поною немного в чатик - чет я задолбался вконец
Hog
Hog
Hog
Пора менять работу - бодрит
Vasily
Да вот планирую
Vasily
Чет меня банковская атмосфера вводит в уныние и бездны отчаяния
Hog
Ну где не уныние? Геймдев? Или «кому ботов за сотку!» ?
Hog
В твоём банке есть дресс-код?
Vasily
Нет
Pavel
в любом по-настоящему крупном бизнесе уныние
Vasily
Это я в курсе
Hog
Заведи себе домашнюю зверушку на гх и пили её :)
Vasily
Не, спасибо
Vasily
В качестве хобби у меня скалолазание
Hog
А ты случаем Женю Китаева не знал?
Vasily
Что-то знакомое
Vasily
Но хз
Vasily
Контекст напомни
Hog
Ну он тоже скалолазил. Из зелика программер.
Hog
Скоропостижно скончался лет несколько назад :(
Vasily
Возможно, слышал
Vasily
Чет пробегало
Hog
Прям ваще неожиданно :(
Hog
Pavel
тогда это высшая ступень неадеквата
Hog
У меня - есть. Туфли-штаны-рубашка
Hog
Ну, не знай :) мне пофиг
Pavel
а... тогда осталосб договогриться в понятиях. что иметь ввиду под дрес кодом