Changes between Version 44 and Version 45 of Records/NameSpacing


Ignore:
Timestamp:
Feb 11, 2012 9:07:16 PM (3 years ago)
Author:
GregWeber
Comment:

add the O in OCaml

Legend:

Unmodified
Added
Removed
Modified
  • Records/NameSpacing

    v44 v45  
    1010The Agda language [http://wiki.portal.chalmers.se/agda/pmwiki.php?n=ReferenceManual.Records generates a module (name space) for each record and also allows a record, like any module to be placed into the global scope by the programmer (opened in Agada terms)]. 
    1111 
    12 Other FP languages where I looked for a record implementation but it appeared they have no solution for records with the same fields (my information could be wrong/out-dated) ocaml, oz. 
    13  
    14 I couldn't find great specific information on record implementation ML variants. Best I can tell, SML does not allow records in the same module with the same field. Records from other modules require name-spacing or must be opened up similar to Agda. SML# supports [http://www.pllab.riec.tohoku.ac.jp/smlsharp/?FeatureRecordPolymorphism record field polymorphism] as per the overloaded records implementation. 
    15  
    16 [http://roy.brianmckenna.org/ Roy], a functional language that targets javascript, does have record field polymorphism (which makes a lot of sense in that context). 
     12Other FP languages where I looked for a record implementation but it appeared they have no solution for records with the same fields (my information could be wrong/out-dated) ocaml, oz. However, the O in OCaml is for objects, and objects have structural typing that supports abstraction over fields. 
     13 
     14I couldn't find great specific information on record implementation ML variants. Best I can tell, SML does not allow records in the same module with the same field. Records from other modules require name-spacing or must be opened up similar to Agda. SML# supports [http://www.pllab.riec.tohoku.ac.jp/smlsharp/?FeatureRecordPolymorphism abstraction over fields] as per the overloaded records implementation. 
     15 
     16[http://roy.brianmckenna.org/ Roy], a functional language that targets javascript, also has structural typing which prevents clashes and allows abstraction over fields. 
    1717 
    1818== Better name spacing ==