我有一个使用 perl6 的子集命令和一些专门针对这些类型的多子集构建的类型层次结构。当多分派发生时,如何为最窄子类型专门化的子提供最高优先级?
这是简化的代码:
#! /usr/bin/env perl6
use v6.c;
proto check($value) { * }
subset Positive of Int where * > 0;
subset PositiveEven of Positive where * %% 2;
multi check(Int $value) {
say "integer"
}
multi check(Positive $value) {
say "positive"
}
multi check(PositiveEven $value) {
say "positive & even"
}
# example:
check(32);
# expected output:
# positive & even
# actual output:
# positive