History variables: Difference between revisions
Content added Content deleted
Line 551: | Line 551: | ||
</lang> |
</lang> |
||
=={{header|Elena}}== |
=={{header|Elena}}== |
||
ELENA 3. |
ELENA 3.4 : |
||
<lang elena>import extensions. |
<lang elena>import extensions. |
||
import system'collections. |
import system'collections. |
||
import system'routines. |
import system'routines. |
||
import extensions'routines. |
import extensions'routines. |
||
class HistoryVariable |
class HistoryVariable |
||
{ |
{ |
||
⚫ | |||
object prop Value :: _value. |
object prop Value :: _value. |
||
⚫ | |||
⚫ | |||
set Value:v |
set Value:v |
||
[ |
[ |
||
if ( |
if (nil != _value) |
||
[ |
[ |
||
_previous push(_value) |
_previous push(_value) |
||
]. |
]. |
||
_value := v |
_value := v |
||
] |
] |
||
⚫ | |||
undo |
undo |
||
[ |
[ |
||
Line 579: | Line 580: | ||
]; |
]; |
||
[ |
[ |
||
_value := |
_value := nilValue |
||
] |
] |
||
] |
] |
||
enumerator => _previous. |
enumerator => _previous. |
||
T<literal> literal => _value. |
|||
} |
} |
||
public program |
|||
[ |
[ |
||
var o := HistoryVariable new. |
var o := HistoryVariable new. |
||
Line 594: | Line 595: | ||
o Value := "foo". |
o Value := "foo". |
||
o Value := o Value + "bar". |
o Value := o Value + "bar". |
||
console printLine(o). |
console printLine(o). |
||
o forEach:printingLn. |
o forEach:printingLn. |
||
o undo; undo; undo. |
o undo; undo; undo. |
||
console printLine(o Value). |
console printLine(o Value). |
||
] |
]</lang> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |