On Thu, Aug 24, 2006 at 12:09:44AM -0600, Luke Palmer wrote:
: The way i would define hyper would be to stop after the shortest list
: (also with zip). I know there are reasons not to do that, however, it
: is easy to say:
: (@a, 0 xx *) >>+<< @b
: @a >>+<< @[EMAIL PROTECTED]
Well, now that we have *, it does tilt the equation differently. We could
perhaps even allow * at the end of a list to expand to "* xx *" or some such.
It would make it easy to say when you don't care if the list is short:
(@a, *) >>+<< @b
Always presuming that + does something sane with *, of course.
With that I could probably be argued into stop-at-shortest semantics,
though I do wish there were an easy way to detect two lists that
weren't conformant. I hate forgetting things accidentally. Hmm,
if the standard + doesn't deal with Whatever, you get an error when
it hits one, but in a lexical scope you can define a "my multi" that
says how to handle a Whatever. Not sure if that's the right default
though--it doesn't actually detect non-conformant lists unless you
put * on the shorter one. We could check for conformance only on
lists that are known to be finite and assume the rest are infinite.
Or, as with the reduce ops, maybe we just need a hyperop variant like >>\+<<.
Presumably it'd be the variant that enforces conformance, so you have to
ask for it. Definitely needs more thought, though...