Prev: NY Times
Next: complex symmetric matrices
From: Pascal Costanza on 12 Dec 2009 07:59 On 12/12/2009 07:55, Kenneth Tilton wrote: > it sucks big-time if I am forever sub-classing. It's very hard to dig out the worthwhile tidbits out of all that noise, but this is a good one: Just to make sure you didn't miss it, you don't necessarily need class hierarchies anymore to make use of filtered functions. Pascal -- My website: http://p-cos.net Common Lisp Document Repository: http://cdr.eurolisp.org Closer to MOP & ContextL: http://common-lisp.net/project/closer/
From: Kenneth Tilton on 12 Dec 2009 08:47 Pascal Costanza wrote: > On 12/12/2009 07:55, Kenneth Tilton wrote: > >> it sucks big-time if I am forever sub-classing. > > It's very hard to dig out the worthwhile tidbits out of all that noise, > but this is a good one: Just to make sure you didn't miss it, you don't > necessarily need class hierarchies anymore to make use of filtered > functions. Yeah!!! Typethink is so rigid. Is that why some people like the prototype object model? In Cells Classic the source of a slot is instance-specific but the expression is via a GF dispatched on the type of the thing (and the types of the before and after values, but that does get used much). In TripleCells (Cells+RDF) the expression ended up instance specific of necessity -- no types! At the same time, while a CLOS class definition dictates the slots of a thing, RDF lets us hang whatever we like off a given subject node. Again I am reminded of the prototype model. But I doubt I would like completely typeless programming, and if an RDF DB has lots of 'IS-A' predicates someone agrees. kt -- http://thelaughingstockatpngs.com/ http://www.facebook.com/pages/The-Laughingstock/115923141782?ref=nf
From: Pascal Costanza on 12 Dec 2009 09:21 On 12/12/2009 14:47, Kenneth Tilton wrote: > Pascal Costanza wrote: >> On 12/12/2009 07:55, Kenneth Tilton wrote: >> >>> it sucks big-time if I am forever sub-classing. >> >> It's very hard to dig out the worthwhile tidbits out of all that >> noise, but this is a good one: Just to make sure you didn't miss it, >> you don't necessarily need class hierarchies anymore to make use of >> filtered functions. > > Yeah!!! Typethink is so rigid. Is that why some people like the > prototype object model? > > In Cells Classic the source of a slot is instance-specific but the > expression is via a GF dispatched on the type of the thing (and the > types of the before and after values, but that does get used much). > > In TripleCells (Cells+RDF) the expression ended up instance specific of > necessity -- no types! > > At the same time, while a CLOS class definition dictates the slots of a > thing, RDF lets us hang whatever we like off a given subject node. Again > I am reminded of the prototype model. > > But I doubt I would like completely typeless programming, and if an RDF > DB has lots of 'IS-A' predicates someone agrees. ....just dispatch on those predicates. No need to introduce class hierarchies. (Well, at least in an ideal world.) Pascal -- My website: http://p-cos.net Common Lisp Document Repository: http://cdr.eurolisp.org Closer to MOP & ContextL: http://common-lisp.net/project/closer/
From: Raffael Cavallaro on 12 Dec 2009 12:18 On 2009-12-12 09:21:32 -0500, Pascal Costanza <pc(a)p-cos.net> said: > ...just dispatch on those predicates. No need to introduce class > hierarchies. (Well, at least in an ideal world.) You might be interested in Mikel Evins' categories: <http://mikelevins.livejournal.com/7587.html> from the readme: "Categories separates the object system into three orthogonal pieces that manage three aspects of the system: representation, behavior, and taxonomy. Types: descriptions of how values are represented. Types are responsible for _representation_. Types comprise both the built-in primitive types of the language on which Categories is implemented, and also structured datatypes that can be defined using Categories APIs. Functions: objects that can be applied to values to compute new values. Functions are responsible for _behavior_. Functions in Categories are polymorphic; they may execute different code depending on computable characteristics of their arguments. Domains: objects that describe relations among types. Domains are responsible for _taxonomy_. A domain defines subtype and supertype relationships among types (it it's a domain that supports such relationships; it's possible to create a domain that doesn't). It also defines how a function chooses which method to execute for a given set of input values." It currently includes a flat domain (i.e., no inheritance) and a c3 domain, but previous versions also had a predicate dispatch domain as well. It's currently implemented for scheme and clojure, but it could certainly be implemented for common lisp as well. -- Raffael Cavallaro
From: Kenneth Tilton on 12 Dec 2009 23:35
Ron Garret wrote: your >>>>> claim that dataflow supports CODE re-use (I emphasize CODE because you >>>>> keep transmogrifying that into OO reuse -- you would be much more >>>>> credible if you stopped putting up straw men) The original (you lying f*ck): > >>> Dataflow's a blast. It even makes OO better, by delivering on the > >>> promise of reuse. Transmogrify that, Bozo. kt |