Вопросы по теме 'discriminated-union'
Избавьтесь от своего шаблона в f #
Я воспользовался Утилизировать шаблон и Библиотеки Uniplate на языке программирования Haskell, и я считаю, что эта форма универсального программирования поверх размеченных объединений действительно полезна. Есть ли эквивалентная библиотека на...
1166 просмотров
schedule
24.01.2023
Более высокая степень детализации при использовании типов записей в F # по сравнению с Discriminated Unions
let Method = { Name:string } //oversimplification
let method_parser =
spaces >>. many1Satisfy isLetter .>> spaces
|>> (fun name -> { Name=name })
Если бы я предпочел использовать размеченное объединение по методу, все...
263 просмотров
schedule
19.03.2022
Какие проблемы, если у дискриминируемого союза есть много вариантов?
Да, тривиальный вопрос, но экспертного мнения по нему я не нашел.
Я использую вычислительные выражения для последовательности серверных процессов. Мне очень помогает, когда мои функции имеют одинаковую сигнатуру, поэтому у меня есть размеченное...
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 просмотров
schedule
06.08.2022
Как определить нулевой элемент при использовании размеченных объединений в функциях массива 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 просмотров
schedule
12.02.2024
Использование NUnit с общими размеченными объединениями
Я пытаюсь использовать FsUnit (под капотом он использует NUnit) для проверки моего кода F #, но у него возникают проблемы с обработкой общих размеченных объединений. Я понимаю, почему это происходит, но я пытаюсь найти способ писать тесты без...
112 просмотров
schedule
06.02.2022
Представление типа варианта enum+object в GraphQL
Существует ли наилучшая практика для представления вариантного поля, которое может быть либо объектом с подполями, либо одним или несколькими одноэлементными значениями, подобными enum ? Например, если есть только одно одноэлементное значение, может...
1823 просмотров
schedule
16.02.2024
машинописное объединение с тегами в общем
Как сделать эту компиляцию без ошибок? Мы используем 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