Set of real numbers: Difference between revisions
Content added Content deleted
m (minor edits) |
|||
Line 359: | Line 359: | ||
=={{header|Elena}}== |
=={{header|Elena}}== |
||
<lang elena>#import |
<lang elena>#import extensions. |
||
#import extensions. |
|||
⚫ | |||
⚫ | |||
{ |
{ |
||
union : func |
|||
= val [ self eval:val || func eval:val ]. |
= val [ self eval:val || func eval:val ]. |
||
intersection : func |
|||
= val [ self eval:val && func eval:val ]. |
= val [ self eval:val && func eval:val ]. |
||
difference : func |
|||
= val [ self eval:val && func eval:val not ]. |
= val [ self eval:val && func eval:val not ]. |
||
} |
} |
||
program = |
|||
[ |
[ |
||
// union |
// union |
||
var set := x [ (x >= 0.0r) && (x <= 1.0r) ] union: x [ (x >= 0.0r) && (x < 2.0r) ]. |
|||
set eval:0.0r assert &ifTrue. |
set eval:0.0r assert &ifTrue. |
||
set eval:1.0r assert &ifTrue. |
set eval:1.0r assert &ifTrue. |
||
set eval:2.0r assert &ifFalse. |
set eval:2.0r assert &ifFalse. |
||
// intersection |
// intersection |
||
var set2 := x [ (x >= 0.0r) && (x < 2.0r) ] intersection: x [ (x >= 1.0r) && (x <= 2.0r) ]. |
|||
set2 eval:0.0r assert &ifFalse. |
set2 eval:0.0r assert &ifFalse. |
||
set2 eval:1.0r assert &ifTrue. |
set2 eval:1.0r assert &ifTrue. |
||
set2 eval:2.0r assert &ifFalse. |
set2 eval:2.0r assert &ifFalse. |
||
// difference |
// difference |
||
var set3 := x [ (x >= 0.0r) && (x < 3.0r) ] difference: x [ (x >= 0.0r) && (x <= 1.0r) ]. |
|||
set3 eval:0.0r assert &ifFalse. |
set3 eval:0.0r assert &ifFalse. |
||
set3 eval:1.0r assert &ifFalse. |
set3 eval:1.0r assert &ifFalse. |