Define a primitive data type: Difference between revisions

m
Line 472:
</lang>
=={{header|Elena}}==
ELENA 3.4.x:
<lang elena>import extensions.;
 
sealed struct TinyInt :: BaseNumber
{
int value.;
 
cast T<int> cast() = value.;
 
constructor(int n)
[{
if ((n <= 1) ||( n >= 10))
[{
InvalidArgumentException new; .raise()
].};
value := n.
]}
 
cast t(literal s)
[
value := s toInt.
cast t(literalstring s)
if ((value <= 1)||(value >= 10))
[{
value := InvalidArgumentException news.toInt(); raise
]
]
 
T<TinyInt> add(TinyInt t)
= value + T<int>(t).
if ((value <= 1) ||( value >= 10))
T<TinyInt> subtract(TinyInt t)
= value - T<int>(t).{
InvalidArgumentException.raise()
]}
[}
]
T<TinyInt> add(TinyInt t)
= value :=+ s(cast toInt.int(t));
T<TinyInt> multiplysubtract(TinyInt t)
= value *- (cast T<int>(t).);
T<TinyInt> dividemultiply(TinyInt t)
= value /* (cast T<int>(t).);
T<TinyInt> subtractdivide(TinyInt t)
= value +/ (cast T<int>(t).);
bool equal(TinyInt t)
= value == T<(cast int>(t).);
bool less(TinyInt t)
= value == T<(cast int>(t).);
}
 
public program
[
T<TinyInt> i := 4t.
T<TinyInt> j := i + i.
public program()
try(i + j)
{
T<TinyInt> i := 4t.;
T<TinyInt> j := i + i.;
]try
}.{
try( i + j)
}
oncatch(InvalidArgumentException e)
{
console .printLine("A value is out of range").
on(InvalidArgumentException e)
[}
]}</lang>
console printLine("A value is out of range").
]
}.
]</lang>
 
=={{header|Euphoria}}==
Anonymous user