🎄 7/25. Perl 6 中 Unicode 的乐趣

欢迎来到 Perl 6 One-Liner Advent Calendar 的第7天! 今天,我们将看看2019年Perl 6日历中的三月份:

img

这里的代码使用 ASCII 领地之外的三个字符。 我们甚至可以再添加一个 Unicode 字符:

1
say π × $𝜌²

在 Perl 6 中,您可以在标识符中自由地使用 Unicode 字符,例如变量或函数名。 但最重要的是,有许多预定义的符号,如 π,它们有 ASCII 替代品。 检查文档页面 Unicode 与 ASCII 符号,以查看可在 Perl 6 中使用的全部 Unicode 字符集。

使用 ASCII,可以通过以下方式重写上述单行程序:

1
say pi * $r ** 2

让我们回到第2天的附加题代码,看看 Unicode 字符可以用在什么位置:

1
2
3
4
5
sub f($n) {
($n <<*>> (1...1000 / $n)).grep: * < 1000
}

say (f(3) ∪ f(5)).keys.sum;

这里有一些因素。

首先,超运算符 <<*>> 可以用适当的法语引号替换:«*»,乘法字符可以是我们今天使用的交叉:«×»。 同样可以应用于除法:÷

其次,序列运算符的三个点可以用一个 Unicode 字符替换:(如果您在 Word 中编程,则在键入完整停止三次后自动获得此字符)。

最后,在最后一行中,使用 Unicode 字符 来查找两个集合的交集。 这里的字符与您在数学中使用的字符相同(是吗?),但您可以使用其 ASCII 版本:f(3) (|) f(5)

所以,我们有一个很棒的圣诞礼物,编程语言中最好的 Unicode 支持。 小心使用它别让其他人对你的代码抓狂! 明天见!