Вопросы по теме 'discriminated-union'

Избавьтесь от своего шаблона в f #
Я воспользовался Утилизировать шаблон и Библиотеки Uniplate на языке программирования Haskell, и я считаю, что эта форма универсального программирования поверх размеченных объединений действительно полезна. Есть ли эквивалентная библиотека на...
1166 просмотров

Более высокая степень детализации при использовании типов записей в F # по сравнению с Discriminated Unions
let Method = { Name:string } //oversimplification let method_parser = spaces >>. many1Satisfy isLetter .>> spaces |>> (fun name -> { Name=name }) Если бы я предпочел использовать размеченное объединение по методу, все...
263 просмотров

Какие проблемы, если у дискриминируемого союза есть много вариантов?
Да, тривиальный вопрос, но экспертного мнения по нему я не нашел. Я использую вычислительные выражения для последовательности серверных процессов. Мне очень помогает, когда мои функции имеют одинаковую сигнатуру, поэтому у меня есть размеченное...
701 просмотров
schedule 21.07.2022

F# сравнивает размеченные объединения по идентификатору случая
Есть ли способ сравнить размеченные союзы по их идентификаторам регистра в F#? type MyUnion = | MyString of string | MyInt of int let x = MyString("hello") let y = MyString("bye") let z = MyInt(25) let compareCases a b = // compareCases x y =...
518 просмотров
schedule 04.06.2022

Размеченная проверка типа объединения в F# с разными возвращаемыми типами
Я пытаюсь написать интерпретатор на F#. Я хочу проверить тип выражений. Вот мой размеченный союз для выражений type Expr = | Integer of int | String of string | Boolean of bool Это метод, который я использую для проверки типов с помощью...
928 просмотров

Как определить нулевой элемент при использовании размеченных объединений в функциях массива F#
Хорошо, вопрос, я хотел бы использовать массив размеченных объединений в функциях массива. В приведенном ниже коде я определяю тип ResultVari , который является либо Unknown , либо значением с плавающей запятой. Я также определяю оператор infix...
106 просмотров
schedule 04.04.2024

Идиоматический машинописный текст Enum Discriminated Union
Начиная с машинописного текста 2.0, вы можете использовать размеченные объединения с перечислением в качестве дискриминанта следующим образом: export function getInstance(code: Enum.Type1, someParam: OtherType1): MyReturnType1; export function...
1886 просмотров

Использование NUnit с общими размеченными объединениями
Я пытаюсь использовать FsUnit (под капотом он использует NUnit) для проверки моего кода F #, но у него возникают проблемы с обработкой общих размеченных объединений. Я понимаю, почему это происходит, но я пытаюсь найти способ писать тесты без...
112 просмотров
schedule 06.02.2022

Представление типа варианта enum+object в GraphQL
Существует ли наилучшая практика для представления вариантного поля, которое может быть либо объектом с подполями, либо одним или несколькими одноэлементными значениями, подобными enum ? Например, если есть только одно одноэлементное значение, может...
1823 просмотров

машинописное объединение с тегами в общем
Как сделать эту компиляцию без ошибок? Мы используем TypeScript 2.9.1. interface IFoo { type: 'foo'; foo: string; } interface IBar { type: 'bar'; bar: string; } type FooBar = IFoo | IBar; class Getter<T extends FooBar> {...
288 просмотров
schedule 28.05.2023

Создайте список различающегося типа объединения с 3 различными типами примитивов.
Итак, я пытаюсь создать список различных типов союзов, таких как; type ColType = Int of int | Float of float | String of string А затем вставьте в список, например let addToList (list : ColType list) (col : ColType) = let list' = list...
153 просмотров
schedule 23.07.2022

сопоставление тега с отмеченным членом объединения не работает для конкретного объединения, только для общего
В продолжение этого ответа я пытаюсь написать общий тип, который сопоставляет тег с типом, который является частью размеченный союз. Общая версия, указанная в ответе выше, работает: type DiscriminateUnion<T, K extends keyof T, V extends...
59 просмотров
schedule 25.01.2023

Как получить тип каждого случая объединения для данного типа объединения в F #
В приведенном ниже коде F # мне интересно, как получить тип, связанный с каждым случаем объединения, через отражение type AccountCreatedArgs = { Owner: string AccountId: Guid CreatedAt: DateTimeOffset StartingBalance: decimal }...
142 просмотров
schedule 03.02.2023