- From: Hassan Ait-Kaci <hak@ilog.com>
- Date: Mon, 8 Jan 2007 08:53:52 -0800
- To: "Leora Morgenstern" <leora@steam.Stanford.EDU>
- Cc: <public-rif-wg@w3.org>
- Message-ID: <9FC9C6B2EA71ED4B826F55AC7C8B9AAB01F3356E@mvmbx01.ilog.biz>
Leora Morgenstern <leora@steam.Stanford.EDU> wrote: > Hi Hassan, Hi Leora - HNY! > In the December 19 meeting, there was something you said that I did not > get down properly. This was in the discussion between you, Frank, and > Harold regarding slotted arguments. > > I have in my notes your saying: > "this is a very strange version of extensional records of functional > programming > ... was suggested ?? years ago by ??? > > " > > Could you fill in the ?? and ??? for me? Sorry for mumbling ... :-( Not 'extensional', but 'extensible' records. And ?? = "by Mitch Wand in a LICS 1987 paper" (see below). Here is what I had in mind to say (I copy the RIF WG since it explains why I said the brief cryptic statement I made and that is to be reported in the minutes). Harold's trick using an 'etc' (or 'rest') variable to represent extensible records or slotted terms is an old one. It is basically a variant of a continuation (or difference list as they are known in Prolog) using a LV to bind the tail of a list to excess information. While it works - it is useless for our purposes of describing strict/vs/flexible arity of slotted terms. My claim is that constraints inherited from signature schemata define the extent of admissible slots for each constructor symbol. BTW, this technique was used by Mitch Wand as far back as 1987 [1] to model extensible records in FP by systematically adding to each record an additional "rightmost" special field - called a "row variable" - whose sole purpose is to act as a catch all hook to be bound to potential further field/value (resp. field/type) pair list extending such a record object (resp., type). Thus is inheritance modelled in polymorphic FP languages such as ML since the row variable continuation representation turns out to be efficient when combined with functional Hindely-Milner style polymorphic type inference. (Indeed, by the Curry-Howard isomorphism, the problem is computationally identical to using difference lists with Horn clause resolution for efficient matching sequence concatenations.) By the way, this "trailing etc." trick has appeared in many areas under several guises in Computer Science: e.g., continuations and monads in FP, Prolog's difference lists, LIFE's accumulators, Lambek grammar's left and right divisions, Categorial grammars, etc., ... [1] Mitchell Wand, "Complete Type Inference for Simple Objects", in Proc. 2nd IEEE Symposium on Logic in Computer Science, pages 37--44, 1987. (See also corrigendum in the 3rd LICS, 1988, page 132.) Best regards, -hak -- Hassan Aït-Kaci ILOG, Inc. - Product Division R&D tel/fax: +1 (604) 930-5603 - email: hak @ ilog . com -----Original Message----- From: Leora Morgenstern [mailto:leora@steam.Stanford.EDU] Sent: Mon 1/8/2007 4:10 PM To: Hassan Ait-Kaci Subject: Could you help me with something you said in the Dec 19 minutes? Hi Hassan, In the December 19 meeting, there was something you said that I did not get down properly. This was in the discussion between you, Frank, and Harold regarding slotted arguments. I have in my notes your saying: "this is a very strange version of extensional records of functional programming ... was suggested ?? years ago by ??? " Could you fill in the ?? and ??? for me? Thanks very much, Leora
Received on Monday, 8 January 2007 16:52:53 UTC