Вопросы по теме 'discriminated-union'
Совпадение по размеченному объединению
Первое использование F # в производственной среде и небольшая помощь. Пожалуйста, посмотрите этот код, где я добавил предупреждения, которые получаю в виде комментариев к каждой строке:
type AssetClass =
| Corp
| Corp_SME
| Res_Mort...
694 просмотров
schedule
30.05.2022
Взаимно ссылающиеся случаи в размеченных союзах разрешены в F #?
Не удается скомпилировать следующий размеченный союз:
type Expression =
| Identifier of string
| Integer of int
| Assignment of Identifier * Expression
с показанной ошибкой
The type "Identifier" is not defined.
по последнему...
169 просмотров
schedule
31.05.2023
Преобразование абстрактного синтаксического дерева (AST) в F#
Я пытаюсь разработать AST для таблицы логики решений. Одна из вещей, которую я хотел бы сделать с размеченным объединением, которое представляет мой AST, — это преобразовать его части по разным причинам. Для наглядности приведу пример
Таблица...
958 просмотров
schedule
19.12.2022
F #: объединение различаемых объединений и иерархий классов?
Скажем, у меня есть значительная иерархия классов:
Tag
ControlFlowTag
IfTag
ForTag
JumpTag
HTMLTag
DivTag
и я хочу составить список с вкраплениями этих и строк.
let MyList = [tagA, tagB, "some text",...
681 просмотров
schedule
15.08.2022
F #: вложенные дискриминируемые объединения и сопоставление
У меня есть 2 вложенных дискриминируемых союза:
type ServiceTypes =
| Contexts
| Context of int
| Producers
type ServiceActions =
| Get of ServiceTypes
| Update of ServiceTypes
И вложенный оператор соответствия:
let...
1720 просмотров
schedule
26.04.2022
списки дискриминируемых объединений в fsharp
Может ли кто-нибудь объяснить, почему следующие два оператора let не работают?
type Rank =
| Two
| Three
| Four
| Five
| Six
| Seven
| Eight
| Nine
| Ten
type Face =
| Jack
| Queen
| King
| Ace
type Suit =
| Diamonds
| Clubs
|...
1356 просмотров
schedule
27.04.2023
Добавление полей констант в размеченные объединения F #
Можно ли добавить значения постоянных полей в размеченные объединения F #?
Могу я сделать что-то подобное?
type Suit
| Clubs("C")
| Diamonds("D")
| Hearts("H")
| Spades("S")
with
override this.ToString() =
// print out the...
783 просмотров
schedule
02.07.2023
Сопоставьте все значения в размеченном объединении
Скажем, у меня есть дискриминированный союз:
type card = Smithy | Cellar | Chapel
И функция, которая сопоставляет размеченное объединение с некоторым значением:
let initialCardCount = function
Smithy -> 4
Cellar -> 6
Chapel...
656 просмотров
schedule
01.06.2023
Как указать предложение объединения с общей единицей измерения в F #?
Можно ли как-то определить DU, в предложениях которого используются общие единицы измерения? например
type MyDU =
| A of int<_>
| B of float<_>
этот код не компилируется, но я могу указать обычную функцию, которая принимает...
190 просмотров
schedule
31.08.2022
Краткое сопоставление с образцом для единственного размеченного объединения в F #
Скажем, у меня есть следующий размеченный союз единственного случая:
type OrderId = OrderId of string
В какой-то момент мне нужна настоящая строка. Я нашел способ его извлечения:
let id = match orderId with OrderId x -> x
Есть...
2195 просмотров
schedule
24.10.2022
Параметризованный размеченный союз в F #
Возможный дубликат: типизированное абстрактное синтаксическое дерево с приложение функции
Я хотел бы иметь следующее
type t<'a>=
| Val of 'a
| Apply of (('a -> 'b) -> t<'a> -> t<'b>) * t<'a>
|...
118 просмотров
schedule
24.06.2023
Шаблон проектирования для расширения дискриминируемых союзов
Хорошо известно, что наследование классов - это «открытые» иерархии типов, а размеченные объединения - это «закрытые» иерархии типов. Однако, хотя добавлять новые подклассы легко, добавление новых виртуальных функций требует модификации всех...
152 просмотров
schedule
14.02.2023
Понимание вывода о дискриминируемых союзах
Рассмотрим следующий код ...
type TypeOne () =
member val Name = "" with get, set
type TypeTwo () =
member val Name = "" with get, set
member val Property = 0 with get, set
[<RequireQualifiedAccess>]
type UnionType =
|...
177 просмотров
schedule
15.03.2023
Создание дискриминированных данных объединения из файла / базы данных
У меня есть размеченный союз для таких выражений (EQ =; GT>; и т. Д.)
(AND (OR (EQ X 0)
(GT X 10))
(OR (EQ Y 0)
(GT Y 10)))
Я хочу создать экземпляры DU из таких выражений, сохраненных в файле / базе данных....
358 просмотров
schedule
08.10.2022
операция динамического множества UNION принимает два непересекающихся множества S1 и S2 в качестве входных данных.
Это мой домашний вопрос, который я пытался решить, просто нужно, чтобы кто-нибудь посмотрел и сказал мне, правильно ли я это делаю или изношен.
Операция динамического множества UNION принимает на вход два непересекающихся множества S1 и S2 и...
1544 просмотров
schedule
25.03.2024
Использование типов Discriminated Union в привязках переменных
Я сделал собственный тип и хотел бы создать 2 переменные, которые доказывают, что мой тип работает должным образом.
type number = A of int | B of float;;
let a = 0;;
let b = 0.0;;
Как мне изменить объявления переменных, чтобы заставить их...
92 просмотров
schedule
10.07.2022
Рекурсивные размеченные союзы и карта
Мне нужен тип дерева и карта на них, поэтому я делаю это:
type 'a grouping =
G of ('a * 'a grouping) list
with
member g.map f =
let (G gs) = g
gs |> List.map (fun (s, g) -> f s, g.map f) |> G...
168 просмотров
schedule
02.07.2022
Можно ли передавать размеченные теги объединения в качестве аргументов?
Можно ли передать тип размеченного тега объединения другой функции, чтобы она могла использовать его для сопоставления с образцом?
Нерабочий пример того, что я имею в виду:
type Animal = Pig of string | Cow of string | Fish of string
let...
1904 просмотров
schedule
13.08.2022
Может ли компилятор F# использовать каррирование для разделения путей кода в зависимости от типа?
Может ли компилятор F# отделить пути кода, каррируя функцию, в которой разные типы подразумевают разные пути через последующие вызываемые функции?
Рассмотрим следующий размеченный союз. Есть 2 возможности, которые теоретически относятся к разным...
104 просмотров
schedule
25.09.2022
пользовательский атрибут класса для случая размеченного союза
В приведенном ниже коде Success и Failure скомпилированы в 2 отдельных класса. Как я могу предоставить настраиваемые атрибуты для успехов и неудач?
type Result<'TSuccess,'TFailure> =
| Success of 'TSuccess
| Failure of 'TFailure...
541 просмотров
schedule
30.12.2022