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 : : or : : @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... Larry