--- Luke Palmer <[EMAIL PROTECTED]> wrote:
> > --- Damian Conway <[EMAIL PROTECTED]> wrote:
> > > Austin Hastings wrote:
> > > > traits = any ( ... )
> > > > requirements = .. & ..
> > > > if $requirements eq $traits
> > > > 
> > > > Should that be traits = all()?
> > > 
> > > No. Because later we say (effectively):
> > > 
> > >   print "True love\n"
> > >       if all(@desiderata) eq any(@traits)
> > > 
> > > In other words we want *all* the desired characteristics to be
> > > matched
> > > by *some* trait. If the comparison was C<all(...) eq all(...)>,
> then
> > > you're asking for every characteristic to be the same as every
> trait,
> > > which obviously can't happen.
> > > 
> > > This is just a case where the "logic" of English phraseology has
> > > several implicit assumptions that computational logic can't just
> > > fudge over.
> > 
> > Does this imply some sort of "depth matching" is required for these
> > expressions?
> > 
> > In this case, there's 
> > 
> > T = tall & dark & handsome
> > D = (tall & dark & handsome) | (Australian) | (rich & old)
> > 
> > So when I say:
> > 
> > all(@desiderata)       # I hated that ^[!]() poem
> > 
> > does that implicitly "search down" until it finds a singleton
> > (Australian) or a conjunction (old & rich)?
> > 
> > And likewise does saying 
> > 
> > any(@traits)
> > 
> > do some sort of implicit (de) construction looking for a singleton
> or a
> > disjunction?
> > 
> > Obviously, yes.
> > 
> > So you're saying that the all() can't work at the a|b|c level,
> because
> > that would be conjunctive disjunction.  (Doc, tell me straight: how
> > long do I have?) So the evaluation alternates through the
> > possibilities, looking for a chance to apply "all".
> 
> I think you've got it mixed up: all() and any() don't work with junk,
> they _are_ junk.
> 
> any($a) is just $a
> all($a) is just $a
> 
> It doesn't do matching, not unless it collapses right there.  So the
> only time it does matching is when it collapses, which has nothing to
> do with whether all() or any() are present.  It has to do with
> whether
> a value is a junction.
> 
>     all(1, 2, 3) === 1 & 2 & 3
>     any(1 & 2 & 3) is still just 1 & 2 & 3
> 
> It matches:
> 
>     all(1, 2, 3) < $x
>     1 & 2 & 3    < $x
> 
> because the junction is forced to collapse there.  Understand?

Maybe I just think differently.  When I'm trying to actually DO the
comparison, I'm forcing at least a partial collapse, no?

I mean, maybe the traits are 

tall & dark & old & handsome & Australian

so the three choices collapse to two, either of which would match.

But regardless, when the actual == appears in the code, some
determination needs to be made in order to figure out which way to go.

So I'm trying to build rules in my brain for how these things are
"compatible-ized?"

And I'm trying to figure out when to specify which junction.

=Austin



__________________________________________________
Do you Yahoo!?
HotJobs - Search new jobs daily now
http://hotjobs.yahoo.com/

Reply via email to