So I sit here and think for a minute about how nice it will be in P6 to
be able to define 

  operator infix:eqi($str1, $str2) {...}

for doing

  if ($1 eqi "last")

and I think about the whole 'C' string library. Which dredges up my old
questions about parameterized operators:

How can I conveniently pass an extra parameter to a historically binary
operator?

At one point, the colon was going to do that, but Larry took it back:

  if ("Dough" eqn:4 "Douglas") # true
  { ...

The options left seem to be:

  package String;
  sub strncmp($a, $b, $n) {...}
  package main;

  sub infix:immed &String::strncmp.assuming($n = 4);
  if ("Dough" immed "Douglas") # ?

or:

  class InfixBinary is Code {...}
  # How do I create a "type"? -- I want to define a return-type-spec
  # that just guarantees context behavior.

  sub eqn($max) returns InfixBinary {
    return &String::strncmp.assuming($n=$max);
  }

  if ("Dough" eqn(4) "Douglas") ...

Frankly, I like the second one.

=Austin

Reply via email to