18 lines
544 B
Text
18 lines
544 B
Text
class HistoryVar{
|
|
var [private] _v, _history=List(), maxSz;
|
|
fcn init(v,maxEntries=3){ maxSz=maxEntries; set(v) }
|
|
fcn set(v){
|
|
_v=v; _history.append(T(Time.Clock.time,v));
|
|
if(_history.len()>maxSz) _history.del(0);
|
|
self
|
|
}
|
|
fcn get(n=0){ // look back into history
|
|
z:=_history.len();
|
|
n=(if(n>=z) 0 else z-n-1);
|
|
_history[n][1]
|
|
}
|
|
var [proxy] v=fcn{ _v };
|
|
var [proxy] history=
|
|
fcn{ _history.pump(List,fcn([(t,v)]){ T(Time.Date.ctime(t),v) }) };
|
|
fcn __opAdd(x){ set(_v + x); self }
|
|
}
|