输入 Unicode 字符

Raku 允许把 unicode 字符用作变量名. 很多操作符使用 unicode 符号(特别是在 set/bag 操作符中)还有一些引号结构. 因此, 知道如何把这些符号输入编辑器, Raku shell 和 命令行中是极好的, 特别是现实键盘中不存在那个符号的时候.

在各种操作系统和环境下关于输入 unicode 字符的通用信息可以在 Wikipedia unicode 输入页 中找到.

编辑器和 shell

Vim

在 Vim 中, unicode 字符是通过先按 Ctrl-V(也表示为 ^V), 然后按下 u 和 要输入的 unicode 字符的十六进制值来输入的(在插入模式). 例如, 希腊字母 λ (lambda) 是通过组合键来输入的:

  1. ^Vu03BB

更多关于在 Vim 中输入特殊字符的信息可以在 Vim Wikia 页 键入特殊字符 中找到.

Emacs

在 Emacs 中, unicode 字符的输入是首先输入和弦 Ctrl-x 8 Enter , 然后再输入 unicode 代码点的十六进制数字, 然后回车. 因此, 要输入希腊字母 λ (lambda) 使用下面的组合键(命令之间添加了空格以使清晰):

  1. Ctrl-x 8 Enter 3bb Enter

更多关于在 Emacs 中输入 unicode 字符的信息可以在 Unicode 编码 Emacs wiki 页面 中找到.

Unix shell

在 bash shell 中, 要输入 unicode 字符先键入 Ctrl-Shift-u, 然后键入 unicode 代码点的值后回车. 例如, 要键入属于操作符()这个 unicode 字符, 使用下面的组合键(添加的空白是为了清晰):

  1. Ctrl-Shift-u 2208 Enter

如果在 Unix shell 中开启了 REPL, 这也是一种在 perl 6 的 REPL 中输入 unicode 字符的方式之一.

Raku中有用的 Unicode 字符

引号

这些字符在法语和德语中是当作引号使用的. 在 Raku 中, 它们仍然用作引号(在 POD 中是单引号, 在普通代码中是双引号), 还可以标示超运算符. 下面是这些符号和它们的 unicode 十六进制值:

  1. 符号 unicode代码点 ascii equivalent
  2. « U+00AB <<
  3. » U+00BB >>

因此, 下面这些结构是可用的:

  1. C« fixed-width POD text »
  2. say (1, 2) »+« (3, 4); # 4 6 ; element-wise add
  3. @array »+=» 42; # add 42 to each element of @array
  4. say «moo»; # moo
  5. my $baa = 123; say «$baa»; # 123

Set/bag 操作符

下面列出的 set/bag 操作符 都有与集合理论相关的符号, unicode 代码点, 和它们的 ascii 等价物. 要构成这样的一个字符, 只需键入字符组合键(例如 Vim中的 Ctrl-V u, Bash 中的 Ctrl-Shift-u), 然后输入 unicode 代码点的十六进制数.

  1. 操作符 unicode代码点 ascii equivalent
  2. U+2208 (elem)
  3. U+2209 !(elem)
  4. U+220B (cont)
  5. U+220C !(cont)
  6. U+2286 (<=)
  7. U+2288 !(<=)
  8. U+2282 (<)
  9. U+2284 !(<)
  10. U+2287 (>=)
  11. U+2289 !(>=)
  12. U+2283 (>)
  13. U+2285 !(>)
  14. U+227C (<+)
  15. U+227D (>+)
  16. U+222A (|)
  17. U+2229 (&)
  18. U+2216 (-)
  19. U+2296 (^)
  20. U+228D (.)
  21. U+228E (+)

数学符号

Wikipedia 包含了一个 unicode 中数学操作符和符号 的完整列表, 还有它们数学意义的链接.

希腊字符

希腊字符可以用作变量名了. 查看 Greek in Unicode Wikipedia article 列表获取希腊和埃及字符还有它们的 unicode 代码点.

例如, 把数值3赋值给 π, 在 Vim 中输入(添加的空格是为了清晰):

  1. my $Ctrl-V u 03C0 = 3; # same as: my $π = 3;
  2. say $Ctrl-V u 03C0; # 3 same as: say $π;

上标和下标

使用 U+207x, U+208x 和 (less often) U+209x 范围能直接创建一个有限的上标和下标的集合. 然而, 要生成一个值的平方或立方, 你需要使用 U+00B2U+00B3 , 因为这些被定义在 Latin1 supplement Unicode block) 中.

因此, 要书写泰勒级数展开, 你可以在 Vim 中输入:

  1. exp(x) = 1 + x + xCtrl-V u 00B2/2! + xCtrl-V u 00B3/3! + ... + xCtrl-V u 207F/n!
  2. # which would appear as
  3. exp(x) = 1 + x + x²/2! + x³/3! + ... + xⁿ/n!

或者指定列表中从1到k 的元素:

  1. ACtrl-V u 2081, ACtrl-V u 2082, ..., ACtrl-V u 2096
  2. # which would appear as
  3. A₁, A₂, ..., A