Oberon space

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

Название: ENUM Multit
Отправлено: Евгений Филиппов от Январь 28, 2015, 01:50:58 am
LANGUGAE OBER_ON;

ENUM Multit < M:MATH_NATURAL_NUMBERS.POSITIVE_NATURAL_NUMBER >
    IS_DEFINED_AS
       MATH_NATURAL_NUMBERS_RANGES.NATURAL_NUMBER_IN_RANGE([1...M])
END Multit

(*
    MODULE ExampleForMultit;
    IMPORT Multiary;
    VAR m: Multiary.Multit<5>;
    BEGIN
        m:= 3;
        (* m:= 6; (* Error *) *)
    END ExampleForMultit.
*)
Название: Re: ENUM Multit
Отправлено: Евгений Филиппов от Январь 28, 2015, 01:54:52 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.
*)
Название: Re: ENUM Multit
Отправлено: Евгений Филиппов от Январь 28, 2015, 01:56:48 am
напишите ктонить толмачам экстеншн =)
Название: Re: ENUM Multit
Отправлено: Евгений Филиппов от Январь 28, 2015, 02:06:05 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>

*)