Ну проблема в том, что в F# это синтаксис присовения переменной, а не равенства. Мне кажется уместнее было бы сделать равенство, а присвоение переменной вынести в "as переменная"
у нас просто всё патерн. match record with | { Name = pattern } -> здесь pattern следует правилам патернов. То есть он будет раскрыт в константный патерн только с ЛИТЕРАЛАМИ | { Name = "concreteName" } -> ... | { Name = 1 } -> ... или с вложенными константными паттернами | { Name = Some "concreteName" } -> ... | { Name = { FirstName = "concreteName" } } -> ... любые другие имена в патерне перебинживают его | { Name = whatever } -> // здесь whatever содержит имя Сранивать два патерна на равенство надо по-другому (ну так как ты сделал) Или через активный патерн! | { Name = Equals employeeName } -> ... (И его ещё надо написать, да)
Интересно, а с интерполяцией можно будет делать match record with | { Name = $"{pattern}" } -> ...
в случае констант мбмб, но вообще компилятор фаршика не умеет даже складывать числа в константах, а тут интерполяция
Кстати хороший вопрос
я думаю это легко проверить подставив туда sprintf
сомневаюсь. sprintf же тебе не дает константу
не всё так просто
Точнее вообще непросто sprintf нелигитмный патерн
Обсуждают сегодня