[BLACKBOX] Matrix slices - syntax

From: Douglas G. Danforth <"Douglas>
Date: Wed, 31 Mar 2010 19:23:07 -0700
----boundary-LibPST-iamunique-849727456_-_- Content-type: text/plain Folks, I don't understand this. If I define a procedure that takes an ARRAY OF REAL and pass it an row of a matrix then that works BUT if I specialize the procedure to take an ARRAY 3 OF REAL and pass it a row of a matrix ARRAY 3,3 OF REAL then the compiler complains. TYPE VDesc = ARRAY OF REAL; V3Desc = ARRAY 3 OF REAL; MDesc = ARRAY OF ARRAY OF REAL; M3Desc = ARRAY 3,3 OF REAL; PROCEDURE Q (IN v: VDesc); BEGIN END Q; PROCEDURE Q3 (IN v: V3Desc); BEGIN END Q3; PROCEDURE Test; VAR m3: M3Desc; BEGIN Q(m3[0]); (* works *) Q3(m3[0]) (* fails! incompatible assignment *) END Test; The "slice" m3[0], which is the first row of m3, is accepted by a routine that accepts general non specific vectors but that same slice which has length 3 is rejected by a routine that wants vectors of length 3. Why? I really don't understand the strong typing in this case. -Doug Danforth ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ----boundary-LibPST-iamunique-849727456_-_- Content-type: application/rtf Content-transfer-encoding: base64 Content-Disposition: attachment; filename="rtf-body.rtf" e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1 O1xyZWQyNTVcZ3JlZW4wXGJsdWUwO30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZz MjQgDQp7XCpcaHRtbHRhZzI0MyA8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhU TUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIj59DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRt bHRhZzE5IDxodG1sPn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMzQgPGhlYWQ+ fQ0Ke1wqXGh0bWx0YWcxIFxwYXIgfQ0Ke1wqXGh0bWx0YWc0MSA8L2hlYWQ+fQ0Ke1wqXGh0bWx0 YWcyIFxwYXIgfQ0Ke1wqXGh0bWx0YWc1MCA8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIiB0ZXh0PSIj MDAwMDAwIj59XGh0bWxydGYgXHZpZXdraW5kNQ0Ke1wqXGJhY2tncm91bmQge1xzaHB7XCpcc2hw aW5zdHtcc3B7XHNuIGZpbGxDb2xvcn17XHN2IDE2Nzc3MjE1fX17XHNwe1xzbiBmRmlsbGVkfXtc c3YgMX19fX19XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfXtcKlxodG1sdGFnNjR9XGh0 bWxydGYge1xodG1scnRmMCBGb2xrcywNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59 XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1JIGRvbid0IHVu ZGVyc3RhbmQgdGhpcy4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1s cnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1JZiBJIGRlZmluZSBhIHByb2NlZHVyZSB0aGF0IHRh a2VzIGFuIEFSUkFZIE9GIFJFQUwgYW5kDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxs aW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9cGFzcyBpdCBhbiByb3cgb2YgYSBt YXRyaXggdGhlbiB0aGF0IHdvcmtzIEJVVCBpZiBJIHNwZWNpYWxpemUNCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH10aGUg cHJvY2VkdXJlIHRvIHRha2UgYW4gQVJSQVkgMyBPRiBSRUFMIGFuZCBwYXNzIGl0IGENCntcKlxo dG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBc cGFyIH1yb3cgb2YgYSBtYXRyaXggQVJSQVkgMywzIE9GIFJFQUwgdGhlbiB0aGUgY29tcGlsZXIg Y29tcGxhaW5zLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVRZUEUNCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxo dG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgVkRlc2MgPSBBUlJBWSBPRiBS RUFMOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1s cnRmMCBWM0Rlc2MgPSBBUlJBWSAzIE9GIFJFQUw7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0 ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIE1EZXNjID0gQVJSQVkgT0YgQVJSQVkgT0Yg UkVBTDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRt bHJ0ZjAgTTNEZXNjID0gQVJSQVkgMywzIE9GIFJFQUw7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRh ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9 DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBQUk9DRURVUkUg USAoSU4gdjogVkRlc2MpOyBCRUdJTiBFTkQgUTsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQg Jm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIFBST0NFRFVSRSBRMyAoSU4gdjogVjNEZXNj KTsgQkVHSU4gRU5EIFEzOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAm bmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgUFJPQ0VEVVJFIFRlc3Q7DQp7XCpcaHRtbHRh ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9 DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBWQVIgbTM6IE0z RGVzYzsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRt bHJ0ZjAgIEJFR0lODQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBc J2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRm MCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIFEobTNbMF0p Ow0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgKCogd29ya3Mg KikNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgUTMobTNbMF0pDQp7XCpcaHRt bHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICAoKiANCntcKlxodG1sdGFnMTQ4 IDxmb250IGNvbG9yPSIjZmYwMDAwIj59XGh0bWxydGYge1xjZjIgXGh0bWxydGYwIGZhaWxzIQ0K e1wqXGh0bWx0YWcxNTYgPC9mb250Pn1caHRtbHJ0ZiB9XGh0bWxydGYwICBpbmNvbXBhdGlibGUN CntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIGFzc2lnbm1lbnQgKikNCntc KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn NCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIEVO RCBUZXN0Ow0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVRoZSAic2xpY2UiIG0zWzBdLCB3aGljaCBp cyB0aGUgZmlyc3Qgcm93IG9mIG0zLCBpcyBhY2NlcHRlZCBieSBhDQp7XCpcaHRtbHRhZzQgXHBh ciB9XGh0bWxydGYgIFxodG1scnRmMCByb3V0aW5lDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9dGhhdCBhY2NlcHRzIGdl bmVyYWwgbm9uIHNwZWNpZmljIHZlY3RvcnMgYnV0IHRoYXQgc2FtZSBzbGljZSB3aGljaA0Ke1wq XGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0 IFxwYXIgfWhhcyBsZW5ndGggMyBpcyByZWplY3RlZCBieSBhIHJvdXRpbmUgdGhhdCB3YW50cyB2 ZWN0b3JzIG9mIGxlbmd0aCAzLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVdoeT8NCntcKlxodG1sdGFnMTE2IDxicj59 XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1JIHJlYWxseSBk b24ndCB1bmRlcnN0YW5kIHRoZSBzdHJvbmcgdHlwaW5nIGluIHRoaXMgY2FzZS4NCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0tRG91ZyBEYW5mb3J0aA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wq XGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0 IFxwYXIgfXtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRh ZzU4IDwvYm9keT59DQp7XCpcaHRtbHRhZzIgXHBhciB9DQp7XCpcaHRtbHRhZzI3IDwvaHRtbD59 DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRtbHRhZzY0IDxwPn1caHRtbHJ0ZiBccGFyDQpc aHRtbHJ0ZjAgXGh0bWxydGYge1xodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0tLS0tDQp7 XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBUbyB1bnN1YnNjcmliZSwgc2Vu ZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJTSUdOT0ZGIEJMQUNLQk9YIiB0byBMSVNUU0VSVkBMSVNU Uy5PQkVST04uQ0gNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFxodG1s cnRmXHBhcn1caHRtbHJ0ZjANCn0= ----boundary-LibPST-iamunique-849727456_-_--- Received on Thu Apr 01 2010 - 04:23:07 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:34 UTC