Re: mutable object model
Carlo Capelli <[email protected]>
| Newsgroups | gmane.comp.ai.prolog.swi |
|---|---|
| Message-ID | <CABty9wxCWFHQE-pO4bxyDhq7zM+TrYRnV8yWr=E2vPh+qr1u0w@mail.gmail.com> |
wow, I cannot wait... I'm on track to release pqGraphviz, mainly exploiting prolog_xref goodies. Graphviz has some support for maps, I'll try to integrate them. bye Carlo 2013/11/13 Jan Wielemaker <[email protected]> > Torbjörn, Alan, > > You may be interesting to hear that the next major release of > SWI-Prolog will provide `maps' as primary citizens that are > supported throughout the system (parsing, writing, efficient > low-level operations). YAP is likely to copy these features. > Just hold on ... > > Cheers --- Jan > > On 11/12/2013 11:31 PM, Torbjörn Lager wrote: > > Hi Alan, > > > > It may not be exactly what you need, but I have from time to time > > considered somthing similar to what you describe. Unfortunately, I'm > > far to occupied with the next version of Pengines to attempt an > > implementation. I share my ideas with you and with others on the list > > in the hope that it will feed into further discussions. > > > > My suggestion for a syntax, both for an immutable "record type" and > > for a mutable "dictionary type" would be something like this: > > > > {a: {b: 1}, > > c: [ {d: 2}, {d:3}], > > e: foo, > > f: [4, 5, 6], > > g: @true > > ) > > > > Note that: > > 1) This syntax is prolog readable > > 2) If ground, it *very* easily and naturally translates into JSON - > > just transform it into SWI-Prolog's JSON terms > > 3) A path language able to pick out any value can easily be defined > > 4) A graph unification operation can be defined that allows us to > > unify two immutable and "open" records > > 5) Assignment operation can be defined that allow us to update any > > instance of a mutable dictionary > > 6) One could probably define a predicate able to turn any immutable > > record into a mutable dictionary > > 7) One could probably define a predicate able to turn any mutable > > dictionary into a immutable record > > > > Oz/Mozart (http://mozart.github.io/) has such things. They are > > referred to as records and dictionaries, and I have therefore used > > this terminology. > > > > I would love to have something like this. > > > > I have no ideas for an *efficient* implementation at this point. :-( > > > > Best regards, > > Torbjörn > > > > > > On Tue, Nov 12, 2013 at 7:51 PM, Alan Baljeu <[email protected]> > wrote: > >> What would people suggest I use for a mutable object model in Prolog? > Some specifics: > >> > >> An open model is preferred, like is implicit in XML and JSON specs. > >> Simple XPath type queries are desired. Select speed is paramount. > >> > >> Data is public. There are no methods as such. > >> > >> Usually member variables would be treated logically: Initially unbound, > then later bound. > >> > >> At times selected variables will be reset to unbound. > >> Variables can share an object. > >> > >> Usually objects are made by instantiating classes. > >> > >> Standard serialization such as XML or JSON is desirable to communicate > with other systems. > >> > >> I don't expect everything above to be ready-provided. I'm looking for > whatever might > >> be an efficient and simple foundation and I'll code the rest. > >> > >> Alan Baljeu > >> -------------- next part -------------- > >> HTML attachment scrubbed and removed > >> _______________________________________________ > >> SWI-Prolog mailing list > >> [email protected] > >> https://lists.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog > > > > > > > _______________________________________________ > SWI-Prolog mailing list > [email protected] > https://lists.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog > -------------- next part -------------- HTML attachment scrubbed and removed