Vasily
По факту фолд
Ayrat
нууууу... фолд семантически генерит что-то новое
Ayrat
мы ж только мутировать хотим
Vasily
Ну если мутировать,то да
gsomix
Ayrat Не пинь, пожалуйста, с нотификацией. :)
Ayrat
Ayrat Не пинь, пожалуйста, с нотификацией. :)
а пачиму? я ж как раз хотел с нотификацией
Ayrat
чтобы все увидели!
gsomix
Ну, там 600 человек сидит.
gsomix
И совсем чуть-чуть на дотнексте.
Ayrat
согласен
Vladislav
Это он ради меня.
gsomix
❤️
Ayrat
Ну если мутировать,то да
type Node<'a> = { Value : 'a mutable Next : Node<'a> option } let rec n3 = { Value = 3 Next = None } and n2 = { Value = 2 Next = Some n3 } and n1 = { Value = 1 Next = Some n2 } let rec revertFrom node = let rec revert' = function | prevNode, Some curNode -> let nextLink = curNode.Next curNode.Next <- prevNode revert' (Some curNode, nextLink) | _, None -> () revert' (None, Some node) revertFrom n1 n1 n2 n3
Ayrat
роботает. Тут аллокации на Option, но можно воткнуть валуеОпшн, да
Ayrat
просто мой FSI кидает script.fsx(8,23): error FS0039: The type 'ValueOption' is not defined.
Ayrat
педик
x
мне кажется или Райдер как-то не очень умеет внутри linq брекпоинты ставить?
x
не кажется. Мда.
Romɑn
Я считаю что Айратовскю доку надо ставить в рамочку
Romɑn
Часть темплейта
Romɑn
Ридми
Romɑn
## Configuration HARD CODE APOCALYPSE All paths and keys are hardcoded
Romɑn
каждый раз ржу
Romɑn
1) Get something else 1) Filter everything out 1) Group nothing by something 1) Allocate over 9000 arrays and throw them away
x
шойта? где приобщиться?
Romɑn
Это на работе
Ayrat
Да, долго сочинял!
Ayrat
Зато вопросов не возникает.
Vladislav
Тут продают railway oriented programming на сишарпе
Vladislav
В хорошем смысле
x
кто? где? на конфе?
x
дайте две!
x
на самодельных Either и Option?
Vladislav
Я скину потом доклад
x
👍
Vasily
Народ, хотите энтерпрайзненьких историй?
Vasily
Или история одного url
Ayrat
жги
x
трави
Vasily
Представьте себе, что у вас есть контроллер
Vasily
С роутами
Vasily
Которые записаны в стринговых константах
Vasily
Вида "foo/{id}"
Vasily
Представьте себе метод BuildUri
Vasily
Который делает следующее
Vasily
Берет эту строчку
Vasily
Добавляет query parameters
Vasily
И отправляет ее в самописный враппер над хттп
Vasily
Получаем строчку вида "foo/{id}?id=123"
Vasily
В самописном враппере
Vasily
Эта строчка парсится
Vasily
id меняется на 123
Vasily
id из параметров удаляется
Vasily
И таким образом получается валидная урла
Vasily
Дабы не травмировать детскую психику, детали парсинга приводить не буду
Ayrat
Пока не страшно.
Ayrat
получилось foo/123?id=123
Vasily
Потом мы, ничтоже сумнящеся, пишем для тестов новый враппер над HttpClient
Vasily
Деталей имплементации мы пока не знаем
Ayrat
foo/123
хитро. Квери параметр заменился
Ayrat
допустим
Vasily
Т.е. берем урлу
Vasily
И получаем эксепшн вида {id} is invalid
Vasily
Что в целом понятно
Vasily
Начинаем разбираться, что да как
Vasily
В итоге откапываем, что, скорее всего, данный способ завязан еще и на отсылку метрик
Vasily
Ну типа логично же
Vasily
Т.е. по этому шаблону еще и определяем параметры метрики
Vasily
Уот так уот
Vasily
А вы говорите
Vasily
DU
Vasily
каррирование
Vasily
А у меня борода седеет ускоренными темпами
Ayrat
О.о
Ayrat
нихуя не понял, но похоже на говнокод
Vasily
Ну так оно и есть