When posting to [A bit confused about 'mutable', etc], I settled to the terminology:
- (user) input cell – cells that can receive user input
- (programmatically) mutable cell – cells that can receive new data, programmatically, i.e. defined with
mutable
The former are typically defined with viewof
, but not necessarily, and often you see the pattern where the cell in question just defines some routines that track user input and store it elsewhere, say in a mutable
.
Whereas not all user input cells are viewof
s, all viewof
s are of course indeed user input cells.
My question then, is: The keyword name viewof
refers to the concrete situation which is erected, namely, two objects: the data itself, and the view of the data. I.e., it is a kind of an implementation denoting term, just like Java likes to use class names like LinkedList
or HashMap
. But maybe it would be better if the keyword would denote the conceptual function, as is already the case with mutable
? (Just like C# uses class names that denote the ‘shape’ in question, e.g. Dictionary
instead of HashMap
.)
userinput d = { ...; return svg; }
Both mutable
and viewof
allow a cell to receive input, the former programmatically, the latter via user input. The former has a name that implies that this is the case, while the latter has a name that describes the underlying mechanism by which it … could be the case.