Oberon space

General Category => Общий раздел => Тема начата: Евгений Филиппов от Январь 28, 2015, 01:42:25 am

Название: ENUM Trit
Отправлено: Евгений Филиппов от Январь 28, 2015, 01:42:25 am
ENUM Trit
BEGIN

MINUS,
ZERO,
PLUS

END Trit
Название: Re: ENUM Trit
Отправлено: Евгений Филиппов от Январь 28, 2015, 02:05:27 am
(* EDIT *)

LANGUAGE OBERON;

MODULE Multiary;

IMPORT MATH_NATURAL_NUMBERS, MATH_NATURAL_NUMBERS_RANGES;

TYPE Multit* < M : MATH_NATURAL_NUMBERS.POSITIVE_NATURAL_NUMBER > =
       MATH_NATURAL_NUMBERS_RANGES.NATURAL_NUMBER_IN_RANGE([1...M]);

END Multiary.

(*
    MODULE ExampleForMultit;
    IMPORT Multiary;
    VAR m: Multiary.Multit<5>;
    BEGIN
        m:= 3;
        (* m:= 6; (* Error *) *)
    END ExampleForMultit.
*)

(*

   Example #2: see <a href="http://oberspace.dyndns.org/index.php/topic,664.0.html"> Ternary.Mod Source Code and Discussion </a>

*)
Название: Re: ENUM Trit
Отправлено: Евгений Филиппов от Январь 28, 2015, 02:07:52 am
(* у , не туда запостил предыд. сообщ-е *)

LANGUAGE OBERON;

MODULE Ternary;

IMPORT
   Multiary (* <a href="http://oberspace.dyndns.org/index.php/topic,665.0.html"> Multiary.Mod Source Code and Discussion </a> *)
    ;

TYPE Trit* = Multiary.Multit<3>;

END Ternary.