VDM-SL - функция принимает набор целых чисел и возвращает идентичный набор

Попытка найти функцию, которая принимает целое число и возвращает неотрицательное значение этого целого числа, которое я выяснил

Abs : int -> nat
Abs(num) == if num < 0
        then -num
        else num;

теперь я пытаюсь создать другую функцию, которая принимает набор целых чисел и возвращает идентичный набор, где каждый элемент является абсолютным значением исходного значения.

PositiveSet : set of int -> set of int

пожалуйста помоги:(

1 ответ

Вам понадобится какое-то понимание множества - "множество абсолютных значений x, где x берется из множества S". Сигнатура будет "seq of int -> seq of nat", поскольку результатом всегда будут натуральные числа.

Один небольшой момент: возвращаемый набор может не быть "идентичным" в том смысле, что он может содержать меньше элементов, чем входной. Например. {-1, 0, 1} изменится на {0, 1}.

Другие вопросы по тегам