RE: Named Integers

From: Fyodor Tkachov <"Fyodor>
Date: Mon, 29 Nov 2004 15:05:33 +0300

----boundary-LibPST-iamunique-1794437291_-_-
Content-type: text/plain

Chris already mentioned a useful trick with read-only variables.

I just mention that if one introduces record types for those, one could ensure a better control over incorrect assignments (especially with LIMITED records).

If adding a syntactic sugar of this kind were deemed necessary, I would opt for implementing this via LIMITED records -- with a complete ban on doubtful assignments etc.:

        TYPE Option = POINTER TO LIMITED RECORD END;
        VAR opt0-, opt1-, opt2-: Option;

And leave things as is for situations like Color where arithmetic (mixing) is allowed. Although this can also be done via LIMITED records with internal fields.

A bit cumbersome, but everything is explicit, and I personally do not feel the extra typing to be too much of a concern that enumerated types should be explicitly introduced.

Cheers
Fyodor

Powered by the E-mail PIM - Info Select - www.miclog.com
--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.


----boundary-LibPST-iamunique-1794437291_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIENocmlzIGFscmVhZHkgbWVudGlvbmVkIGEgdXNl
ZnVsIHRyaWNrIHdpdGggcmVhZC1vbmx5IHZhcmlhYmxlcy5ccGFyDQpccGFyDQpJIGp1c3QgbWVu
dGlvbiB0aGF0IGlmIG9uZSBpbnRyb2R1Y2VzIHJlY29yZCB0eXBlcyBmb3IgdGhvc2UsIG9uZSBj
b3VsZCBlbnN1cmUgYSBiZXR0ZXIgY29udHJvbCBvdmVyIGluY29ycmVjdCBhc3NpZ25tZW50cyAo
ZXNwZWNpYWxseSB3aXRoIExJTUlURUQgcmVjb3JkcykuXHBhcg0KXHBhcg0KSWYgYWRkaW5nIGEg
c3ludGFjdGljIHN1Z2FyIG9mIHRoaXMga2luZCB3ZXJlIGRlZW1lZCBuZWNlc3NhcnksIEkgd291
bGQgb3B0IGZvciBpbXBsZW1lbnRpbmcgdGhpcyB2aWEgTElNSVRFRCByZWNvcmRzIC0tIHdpdGgg
YSBjb21wbGV0ZSBiYW4gb24gZG91YnRmdWwgYXNzaWdubWVudHMgZXRjLjpccGFyDQpccGFyDQpc
dGFiIFRZUEUgIE9wdGlvbiA9IFBPSU5URVIgVE8gTElNSVRFRCBSRUNPUkQgRU5EO1xwYXINClx0
YWIgVkFSICBvcHQwLSwgb3B0MS0sIG9wdDItOiBPcHRpb247XHBhcg0KXHBhcg0KQW5kIGxlYXZl
IHRoaW5ncyBhcyBpcyBmb3Igc2l0dWF0aW9ucyBsaWtlIENvbG9yIHdoZXJlIGFyaXRobWV0aWMg
KG1peGluZykgaXMgYWxsb3dlZC4gQWx0aG91Z2ggdGhpcyBjYW4gYWxzbyBiZSBkb25lIHZpYSBM
SU1JVEVEIHJlY29yZHMgd2l0aCBpbnRlcm5hbCBmaWVsZHMuXHBhcg0KXHBhcg0KQSBiaXQgY3Vt
YmVyc29tZSwgYnV0IGV2ZXJ5dGhpbmcgaXMgZXhwbGljaXQsIGFuZCBJIHBlcnNvbmFsbHkgZG8g
bm90IGZlZWwgdGhlIGV4dHJhIHR5cGluZyB0byBiZSB0b28gbXVjaCBvZiBhIGNvbmNlcm4gdGhh
dCBlbnVtZXJhdGVkIHR5cGVzIHNob3VsZCBiZSBleHBsaWNpdGx5IGludHJvZHVjZWQuXHBhcg0K
XHBhcg0KQ2hlZXJzXHBhcg0KRnlvZG9yXHBhcg0KXHBhcg0KUG93ZXJlZCBieSB0aGUgRS1tYWls
IFBJTSAtIEluZm8gU2VsZWN0IC0gd3d3Lm1pY2xvZy5jb21ccGFyDQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxwYXINClxwYXINClRvIHVuc3Vic2NyaWJlIGZy
b20gdGhpcyBtYWlsaW5nIGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdvcmQg
InVuc3Vic2NyaWJlIiB0bzpccGFyDQogICBibGFja2JveC1yZXF1ZXN0QG9iZXJvbi5jaFxwYXIN
ClxwYXINClRvIGdldCBhIGxpc3Qgb2YgdmFsaWQgZS1tYWlsIGNvbW1hbmRzIGFuZCBpbnN0cnVj
dGlvbnMgb24gdGhlaXIgdXNhZ2UsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdvcmQg
ImhlbHAiIHRvIHRoZSBhYm92ZSBhZGRyZXNzLlxwYXINClxwYXINClNlbmQgYW55IHByb2JsZW0g
cmVwb3J0cyBvciBxdWVzdGlvbnMgcmVsYXRlZCB0byB0aGlzIGVtYWlsIGxpc3QgdG8gdGhlIGxp
c3Qgb3duZXIgYXRccGFyDQogICBvd25lci1ibGFja2JveEBvYmVyb24uY2hccGFyDQpccGFyDQpD
dXJyZW50IHBvc3RpbmcgcG9saWN5OlxwYXINClxwYXINCmEpIFRvIHBvc3QgeW91IHNob3VsZCB1
c2UgdGhlIHNhbWUgYWRkcmVzcyBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhlIG1h
aWxpbmcgbGlzdC4gVGhhdCB3YXksIHRoZSBsaXN0IHNlcnZlciB3aWxsIHJlY29nbml6ZSB5b3Ug
YXMgc3Vic2NyaWJlciBhbmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHksIHdpdGhv
dXQgY3JlYXRpbmcgYW55IG92ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBmb3Igc29tZSByZWFz
b24sIHlvdSBjYW5ub3QgcG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3UgYXJlIHN1
YnNjcmliZWQsIHlvdXIgbWVzc2FnZSB3aWxsIGJlIG1vZGVyYXRlZCB0byBhdm9pZCBzcGFtLiBQ
bGVhc2UgdW5kZXJzdGFuZCB0aGF0IG1vZGVyYXRpb24gd2lsbCBvZnRlbiBjYXVzZSBzb21lIGRl
bGF5LCBpbiBwYXJ0aWN1bGFyIG92ZXIgd2Vla2VuZHMgb3IgaG9seWRheXMuXHBhcg0KfQ=


----boundary-LibPST-iamunique-1794437291_-_---
Received on Mon Nov 29 2004 - 13:05:33 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:29 UTC