Публикации по теме 'algebraic-data-types'


ADT с Java: запечатанные классы, сопоставление с образцом, записи
Я большой поклонник Алгебраических типов данных . Они позволяют нам декларативно указывать грамматику модели данных. Многие современные статически типизированные языки предоставляют эту функциональность из коробки , что позволяет писать очень выразительный код. Поскольку я в основном работаю с Java, я несколько раз пытался использовать ADT в Java. Это не было приятным опытом. Java просто не предоставляет подходящих инструментов. В прошлый раз, когда я пытался, это было с Java 11...

Вопросы по теме 'algebraic-data-types'

Существуют ли значения по умолчанию для средств получения записей в Haskell?
Неудивительно, что следующий код вызывает исключение во время выполнения: data Necklace = InvalidNecklace | Necklace { necklace_id :: Int, meow :: Int, ... } necklace_id InvalidNecklace Есть ли какой-то естественный способ определить...
1018 просмотров
schedule 06.01.2024

Котлин и размеченные союзы (типы сумм)
Есть ли в Котлине что-нибудь вроде размеченных объединений (типов сумм)? Каким будет идиоматический перевод этого слова на Котлин (F #): type OrderMessage = | New of Id: int * Quantity: int | Cancel of Id: int let handleMessage msg =...
16576 просмотров

Haskell — алгебраические типы данных, использующие рекурсию?
Я следовал руководству по созданию двоичного дерева поиска, которое использует следующий тип данных: data BinarySearchTree a = EmptyTree | TreeNode a (BinarySearchTree a) (BinarySearchTree a) deriving (Show, Read, Eq) Правильно ли я говорю,...
279 просмотров

Контейнерный алгебраический тип данных в Scala
Не очень хорошо знаком с системой типов Scala, но вот что я пытаюсь сделать. У меня есть функция, которая пытается фильтровать людей по имени и фамилии, и если это не удается, фильтрует только по имени. case class Person(id: Int, first: String,...
247 просмотров

Как автоматически создавать упорядоченные типы данных в SML
Я хотел бы знать, есть ли способ создать функцию, которая, учитывая список names / identifiers , например. [Monday, Tuesday, ...] автоматически создает datatype day = Monday | Tuesday | ... и следующую функцию, так что next Monday = Tuesday ,...
60 просмотров