[PEAK] Laziness, terminology, and the Trellis API
Sergey Schetinin
maluke at gmail.com
Thu Mar 27 10:09:57 EDT 2008
Regarding the terminology, I think renaming 'transient_variable' to
'signal' would be great, so what was 'receiver' becomes 'signal',
'discrete'/'compute_transiently' could be 'emit', 'emitter', 'transmit'
or some variation on that.
Also, some way to recompute the rule only if there is a signal present
would be great as well. 'if self.signal is not None:' works, but often
seems unnecessary.
'resets_to' could be renamed to 'nosignal' as well, not much typing
saved, but mnemonically a much better choice IMO.
Now I also think 'react' is a much better choice than 'observe' or
'perform' as well.
'variable', 'compute' and 'maintain' still seem to be the perfect
choices though.
Phillip J. Eby wrote:
> So out of all that, I kind of like:
>
> * variable - hold a value that can be set
> * compute - calculate a value, no side-effects (i.e., lazy/cached)
> * maintain - keep one or more values current within the Trellis
> * maybe_maintain - optionally maintain
> * perform - do actions in the outside (non-Trellis) world
> * maybe_perform - optionally perform
>
> Of course, the first four items above can also be discrete (transient),
> so we also need:
>
> * transient_variable - (called "receiver" today)
> * compute_transiently - (@discrete, except also lazy)
> * maintain_transiently - (@discrete today)
> * maybe_maintain_transiently - (@optional @discrete today)
More information about the PEAK
mailing list