Talk:Read-write types

Revision as of 18:15, 7 July 2007 by Peter gummer (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

'--Peter gummer 03:49, 7 July 2007 (CEST) This is very hard to understand. I still don't understand it. Maybe the words read and write are confusing me. These are obviously bad keywords anyway, because read and write would already be used as procedure names in many classes, so is there something more descriptive? How about polymorphic and monomorphic? I don't know whether these are accurate, because as I said I don't understand the proposal yet; but it doesn't bother me having polysyllabic keywords for this.

--manus 23:26, 7 July 2007 (CEST): The term were chosen because of the analogy with a generic container where you can read from it and write (add) to it. So when you see `read A write B' for a generic it simply means that you will be reading A but the only thing you can put is B. In any case, as pointed out in the article it is just a proposal and any other syntax which would be simpler to understand is welcome.
--Peter gummer 04:15, 8 July 2007 (CEST) Ok, this meaning of read and write is reasonably clear for the case of a generic container. I feel, however, that it's impeding my understanding of other cases. The "Semantics" section near the top of the page makes a distinction between the availability of features and calls. I don't understand this; in Eiffel, using a feature means making a feature call, regardless of whether the feature is an attribute, a function or a procedure. I think it's trying to say that read restricts the covariance of a query's type, whereas write restricts the contravariance of arguments of a routine. But I'm not quite right there either, because I think these read-write types still allow for covariant arguments, don't they? Be that as it may, I'd like to see the first paragraph of the "Semantics" section rewritten.