Difference between revisions of "Talk:Read-write types"

 
Line 2: Line 2:
  
 
:'''--[[User:Manus|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.
 
:'''--[[User:Manus|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.
 +
 +
::--[[User:Peter gummer|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.

Latest revision as of 17:15, 7 July 2007

'--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.