小编Lar*_*een的帖子

在 Raku 中将单词的字符简洁地转换为其 ascii 代码列表

我正在尝试将单词wall转换为它的 ascii 代码列表,(119, 97, 108, 108)如下所示:

my @ascii="abcdefghijklmnopqrstuvwxyz";

my @tmp;
map { push @tmp, $_.ord if $_.ord == @ascii.comb.any.ord }, "wall".comb;
say @tmp;
Run Code Online (Sandbox Code Playgroud)
  1. 有没有办法使用@tmp而不在单独的行中声明它?

  2. 有没有办法在一行而不是 3 行中生成 ascii 代码列表?如果是这样,该怎么做?

请注意,我必须使用@ascii变量,即我不能使用连续递增的 ascii 序列,(97, 98, 99 ... 122)因为我也计划将此代码用于非 ascii 语言。

list raku

15
推荐指数
2
解决办法
315
查看次数

在Raku中表达双重求和序列

如何在Perl 6中表达双变量双求和序列?

有关双变量双求和序列的示例,请参见此

图片

它必须按原样表示,即在数学上不将双重求和简化为单一求和。谢谢。

math raku

13
推荐指数
1
解决办法
126
查看次数

从列表或数组中删除一个没有 Raku 中的 (Any) 人工制品的元素

我已经搜索了 Raku 文档和几本书和教程以及几篇 Stackoverflow 帖子,以了解如何干净地从列表/数组中删除项目,即没有(Any)代替已删除的元素

my @s = <3 18 4 8 92 14 30>;
my $item = 8; 
my $index =  @s.first($item, :k);
@s[$index]:delete;
Run Code Online (Sandbox Code Playgroud)

这导致[3 18 4 (Any) 92 14 30],因此我无法对其进行任何操作,例如我无法对其进行应用[+]

有没有办法从列表/数组中删除一个项目而没有(Any)

raku

11
推荐指数
1
解决办法
224
查看次数

指定 Raku 中序列的显式生成器上的小数位数

我写了一个简单的代码:

\n
sub euler-ex ($x) of Seq {\n   1, { $x**++$ / [\xc3\x97] 1 .. ++$ } ... Inf }\nsay " 5: " ~ euler-ex(5)[^20]  ~ " = " ~ [+](euler-ex(5)[^20]);\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n
5: 1 5 12.5 20.833333 26.041667 26.041667 21.701389 15.500992 9.68812 5.382289 2.6911445 1.22324748 0.50968645 0.19603325 0.07001187499 0.023337291662 0.0072929036444 0.00214497166011 0.000595825461143 0.000156796173985 = 148.41310786833832\n
Run Code Online (Sandbox Code Playgroud)\n

如何指定该输出的位数,即来自序列的显式生成器的小数位数?

\n

rational-number sequence significant-digits raku

10
推荐指数
2
解决办法
145
查看次数

在 Raku 列表中查找相等元素的连续序列

我想在列表中找到相等元素(例如长度为 2)的连续序列

my @s = <1 1 0 2 0 2 1 2 2 2 4 4 3 3>;
say grep {$^a eq $^b}, @s;

# ==> ((1 1) (2 2) (4 4) (3 3))
Run Code Online (Sandbox Code Playgroud)

这段代码看起来不错,但是当在2的序列之后添加另外2 2 2一个2或从中删除一个2时,它会显示Too few positionals passed; expected 2 arguments but got 1如何修复它?请注意,我试图在不使用for循环的情况下找到它们,即我试图尽可能地使用功能代码来找到它们。

可选:在粗体打印部分:

<1 1 0 2 0 2 1 2 2 2 4 4 3 3>

2 2可以看到多个序列。如何打印它们被看到的次数?喜欢:

((1 1) …
Run Code Online (Sandbox Code Playgroud)

sequence raku

9
推荐指数
2
解决办法
127
查看次数

使用 Raku 计算 e 数

我试图通过计算公式来计算e常数(又名欧拉数电子

为了一次性计算阶乘和除法,我写了这个:

my @e = 1, { state $a=1; 1 / ($_ * $a++) } ... *;
say reduce  * + * , @e[^10];
Run Code Online (Sandbox Code Playgroud)

但它没有成功。如何正确地做到这一点?

code-generation lazy-evaluation eulers-number raku

9
推荐指数
2
解决办法
347
查看次数

Raku Regex 捕获和修改 LFM 代码块

更新:下面添加了更正的代码

我有一个Leanpub 风格Markdown * 文件,sample.md我想使用以下命令将其代码块转换为Github 风格的 Markdown风格Raku Regex

Here's a sample **ruby** code, which
prints the elements of an array:

{:lang="ruby"}
    ['Ian','Rich','Jon'].each {|x| puts x}

Here's a sample **shell** code, which
removes the ending commas and
finds all folders in the current path:

{:lang="shell"}
    sed s/,$//g
    find . -type d
Run Code Online (Sandbox Code Playgroud)

为了捕获lang值,例如ruby{:lang="ruby"}并将其转换为

```ruby
Run Code Online (Sandbox Code Playgroud)

我用这个代码

my @in="sample.md".IO.lines;
my @out;
for @in.kv -> $key,$val {
    if $val.starts-with("\{:lang") { …
Run Code Online (Sandbox Code Playgroud)

regex markdown github-flavored-markdown raku

9
推荐指数
2
解决办法
111
查看次数

在 Windows 7 上找不到 File::Find Raku

我有一个非常简单的程序,它列出.txt了给定目录中的所有文件。这个程序在我的 Mac 上完美运行,它有 Rakudo Star 版本 2019.03.1

use File::Find;

my $folder="../Documents";

.say for find dir => $folder, name => /'.txt' $/;
Run Code Online (Sandbox Code Playgroud)

当我尝试在具有 Raku 2020.12.1 的 Windows 7 上运行相同的程序时,它给出了以下信息:

use File::Find;

my $folder="../Documents";

.say for find dir => $folder, name => /'.txt' $/;
Run Code Online (Sandbox Code Playgroud)

我已经将 Raku 更新到 Raku 2021.02.1 版本,并且再次出现相同的错误。我已经通过解压缩rakudo-moar-2021.02.1-01-win-x86_64-msvc.zipie安装了它,而没有使用任何安装程序。而关于Mac上的Raku,我不记得安装了File::Find模块,也不知道如何列出已安装的模块,即我没有检查是否File::Find安装在Mac或Windows 7上。

如何使该程序在 Windows 7 上运行?

module rakudo raku

9
推荐指数
1
解决办法
76
查看次数

sub 将 Nil 附加到 Raku 的末尾

my sub e($r) { printf("%d, ", $_) for 1..$r}
say e(5);
Run Code Online (Sandbox Code Playgroud)

返回1, 2, 3, 4, 5, Nil,即sub和/或say始终在末尾添加Nil

我第一次尝试使用 rakudo 版本 2020.02。我现在尝试使用最新版本 2020.12.1 并且Nil仍然存在。如何摆脱它?

raku

8
推荐指数
1
解决办法
77
查看次数

Raku 中的匿名状态变量与主题变量

2020 年 1 月我写了这段代码

\n
my @a = ( 1, { ([+] 1 .. ++$ ) / [\xc3\x97] 1 .. ++$ } ... Inf)[^7];\nsay @a.join(\' + \') ~ "=" ~ [+] @a;\n
Run Code Online (Sandbox Code Playgroud)\n

用 Raku 表达以下数学级数:

\n

在此输入图像描述

\n

该代码工作正常:

\n
1 + 1 + 1.5 + 1 + 0.416667 + 0.125 + 0.029167=5.070833\n
Run Code Online (Sandbox Code Playgroud)\n

现在我用$主题变量替换了匿名状态变量$_,看看它是否工作相同。它没有:

\n
1 + 0.5 + 0.5 + 0.5 + 0.5 + 0.5 + 0.5=4\n
Run Code Online (Sandbox Code Playgroud)\n

我希望它能$_像匿名状态变量一样增加自身$,但事实并非如此。

\n …

raku

8
推荐指数
1
解决办法
102
查看次数