# New Ticket Created by Damian Conway
# Please include the string: [perl #121454]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=121454 >
On the 2014.01 release of Rakudo, this works as expected:
subset Zero of Int where 0;
subset One of Int where 1;
multi fib (Zero) { 1 }
multi fib (One) { 1 }
multi fib (Int $n) { fib($n-1) + fib($n-1) }
say fib(3);
And we can then reduce the syntactic load by "inlining" the constraint:
multi fib (0) { 1 }
multi fib (1) { 1 }
multi fib (Int $n) { fib($n-1) + fib($n-1) }
say fib(3);
Which also works under 2014.01.
Or we could have optimized the syntax with a junctive constraint instead:
subset ZeroOne of Int where 0|1;
multi fib (ZeroOne) { 1 }
multi fib (Int $n) { fib($n-1) + fib($n-1) }
say fib(3);
Which also works under 2014.01.
So then I wanted to use the final syntactic optimization: once again
"inlining" the constraint:
multi fib (0|1) { 1 }
multi fib (Int $n) { fib($n-1) + fib($n-1) }
say fib(3);
But that doesn't even compile. :-(
I believe it should.
And it would also be very convenient--for my purposes of one-upping
Haskell--if it did. :-)
Thanks,
Damian