From: Pascal Costanza on
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
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
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
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
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
First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9
Prev: NY Times
Next: complex symmetric matrices