小编Sum*_*nal的帖子

使用Perl 6从.bib文件中提取

在LaTeX中写论文的时候,我有这个.bib文件供参考管理:

@article{garg2017patch,
  title={Patch testing in patients with suspected cosmetic dermatitis: A retrospective study},
  author={Garg, Taru and Agarwal, Soumya and Chander, Ram and Singh, Aashim and Yadav, Pravesh},
  journal={Journal of Cosmetic Dermatology},
  year={2017},
  publisher={Wiley Online Library}
}

@article{hauso2008neuroendocrine,
  title={Neuroendocrine tumor epidemiology},
  author={Hauso, Oyvind and Gustafsson, Bjorn I and Kidd, Mark and Waldum, Helge L and Drozdov, Ignat and Chan, Anthony KC and Modlin, Irvin M},
  journal={Cancer},
  volume={113},
  number={10},
  pages={2655--2664},
  year={2008},
  publisher={Wiley Online Library}
}

@article{siperstein1997laparoscopic,
  title={Laparoscopic thermal ablation of …
Run Code Online (Sandbox Code Playgroud)

latex bibtex tex perl6 raku

17
推荐指数
1
解决办法
923
查看次数

在Rmarkdown中执行Perl 6代码

我想写一些关于Perl 6的教程.对此我相信Rmarkdown会有很大的帮助.

所以我试图Perl 6在Rmarkdown文档中执行代码.

我的Perl 6可执行文件在C:\rakudo\bin.所以我的.Rmd文件带有示例代码来完成此操作如下:

---
title: "Example"
output: html_document
---

```{r, engine='perl6', engine.path='C:\\rakudo\\bin'}
my $s= "knitr is really good";
say $s;
```
Run Code Online (Sandbox Code Playgroud)

然而,在Rstudio中编织上述文档显示以下没有Perl 6输出. 在此输入图像描述

我失踪的任何帮助?

perl r perl6 knitr r-markdown

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

如何对 Raku 进行基准测试?

我定期关注GitHub Rakudo 存储库,以查看 Rakudo 编译器中发生的变化。

我有时会看到提交,其中单个功能被加速了一定的百分比,时间如下图所示。

在此处输入图片说明

评估这个的工作流程是什么?我很想学习这一点,这样人们就可以了解您的功能如何执行并相应地进一步优化,并可以为 Rakudo 开发做出贡献。

这里阅读以寻求帮助,在这里。我用谷歌搜索但找不到此信息。我还通过此处生成输出的命令行--profile选项了解了 MoarVM 分析器。要寻找什么?html

在此处输入图片说明

我不是一个正式的计算机科学人。我理解Tony Hoare 的名言——“过早优化是万恶之源”,但随着时间的推移,一旦代码编写正确,人们就会希望对其进行优化。所以问题。

benchmarking rakudo raku

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

使用 NativeCall 调用 C fn `erf` 比 C 中的 `erf` 获得更精确的输出

我编写了一个 Raku 脚本来调用erfC 标准库中的函数:

use NativeCall;
sub erf(num64) returns num64 is native { * };

say [0.5,1,2,3,4,-0.9].map: {erf($_.Num)};
Run Code Online (Sandbox Code Playgroud)

该脚本的输出

(0.5204998778130465 0.8427007929497149 0.9953222650189527 0.9999779095030014 0.9999999845827421 -0.7969082124228322)
Run Code Online (Sandbox Code Playgroud)

[0.5,1,2,3,4,-0.9]除 之外的所有值都与 C 的输出匹配4

对于4C 输出,1.000000而 Raku 给出0.9999999845827421

要测试 C 语言的输出4,请运行以下代码:

#include <stdio.h> // Including header file for printf function
#include <math.h>  // Including header file for erf function

int main (){

  double param, result;
  param = 4.0;
  result = erf(param);
  printf("erf …
Run Code Online (Sandbox Code Playgroud)

c printf rakudo nativecall raku

11
推荐指数
3
解决办法
168
查看次数

多次调度给候选人,但本机参数不起作用

multi我正在尝试在 Raku 代码中使用将函数包装在 中的函数C。\n这里我正在调用lchoose共享库中的函数。\n这是我的有效Rmath代码:

\n
use NativeCall;\n\nconstant RMATH = "./Rmath"; # shared library\nsub lchoose(num64, num64) returns num64 \n        is native( RMATH ) { * };\n\n# The C function signature is \n# double    lchoose(double, double);\n\nsub r_lchoose($n,$r) {\n        return lchoose($n.Num, $r.Num)\n}\n\nsay r_lchoose(9,8) # 2.1972245773362196\n
Run Code Online (Sandbox Code Playgroud)\n

但这是行不通的。代码继续运行/挂起。既不死亡也不抛出任何输出

\n
\nuse NativeCall;\n\nconstant RMATH = "./Rmath"; # shared library\nmulti lchoose(num64, num64) returns num64 \n        is native( RMATH ) { * };\n\nmulti lchoose($n,$r) …
Run Code Online (Sandbox Code Playgroud)

rakudo nativecall raku

10
推荐指数
1
解决办法
115
查看次数

Perl 6列表理解

我是Windows 10 i7第四代笔记本电脑,内存为8 GB.

我想找出1到1000000000的数字之和,可被5整除.

我试图在perl 6 REPL中运行此代码:

($_ if $_%5==0 for 1..1000000000).sum
Run Code Online (Sandbox Code Playgroud)

代码运行45分钟,仍然没有输出.我怎么能克服它?

如何在这种情况下应用并发性?我认为上面的问题可以通过并发或任务并行来解决!

list-comprehension perl6 raku

9
推荐指数
3
解决办法
519
查看次数

VS Code for Raku 中的多行注释

我使用 VS Code 来编写Raku代码。

它正确显示单行注释。

# this is single-line comment!

Run Code Online (Sandbox Code Playgroud)

然而,它与嵌入式、多行和 pod 注释不同。请参阅下面的片段:

在此输入图像描述

在此输入图像描述

在此输入图像描述

Raku

嵌入的评论是

if #`( This is an inline comment here? ) True {
    say "Raku is awesome";
}
Run Code Online (Sandbox Code Playgroud)

多行注释是

#`[
And this is how a multiline comment would work.
That says why we do what we do below.
]
say "Raku is awesome";

Run Code Online (Sandbox Code Playgroud)

pod 评论是

=begin comment
 
Here are several
lines
of comment
 
=end comment

say "Hello";

Run Code Online (Sandbox Code Playgroud)

问题是,一旦 VS code 看到#,它就会注释掉整行,而嵌入注释中不应出现这种情况。更多详细信息 …

github visual-studio-code raku

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

Raku 中列表的汇总列表

我正在尝试对 Raku 中的列表进行求和。示例取自此处


my $arr = ([1e50, 1, -1e50] xx 1000);

say (flat |$arr).sum; # output 0

# https://docs.raku.org/language/operators#infix_xx
# https://docs.raku.org/routine/flat

Run Code Online (Sandbox Code Playgroud)

它的输出0不是预期的(1000)。然而,这工作正常

say ([1, 2] xx 5).flat.sum;
Run Code Online (Sandbox Code Playgroud)

为什么行为不同?是因为精度吗?

另一件事是

my $arr = ([1e50, 1, -1e50] xx 1000);
my @array = $arr.flat;
Run Code Online (Sandbox Code Playgroud)

我怎样才能float有效地使这个扁平化列表中的每个元素都有效?

我知道的一种方法是迭代此列表的每个元素并调用Num方法。

my $arr = [1, 2] xx 5; #([1e50, 1, -1e50] xx 10);

my @array = $arr.flat;
for @array {$_=$_.Num};
Run Code Online (Sandbox Code Playgroud)

arrays rakudo raku

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

在 Windows 中的 Raku 中调用模块不起作用

我有两个文件main.rakuTestMod.rakumod位于一个目录中C:\\Users\\suman

\n

TestMod.rakumod

\n
unit module TestMod;\nsub add($a, $b) is export {\n    $a + $b\n}\n
Run Code Online (Sandbox Code Playgroud)\n

main.raku

\n
use lib $*PROGRAM.dirname;\nuse TestMod;\n\nsay add(8,9)\n
Run Code Online (Sandbox Code Playgroud)\n

我想TestModmain脚本文件调用模块中的一些函数。当我运行脚本时,我收到此错误

\n
===SORRY!=== Error while compiling c:\\Users\\suman\\main.raku\nread from dirhandle failed: 123\nat c:\\Users\\suman\\main.raku:2\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的操作系统特定信息:

\n
Host Name:                 SUMANKHANAL\nOS Name:                   Microsoft Windows 10 Pro\nOS Version:                10.0.19043 N/A Build 19043\nOS Manufacturer:           Microsoft Corporation\nOS Configuration:          Standalone Workstation\nOS Build Type:             Multiprocessor Free\nRegistered Owner:          N/A\nRegistered Organization:   N/A\nProduct ID:                00331-20350-00000-AA867\nOriginal Install Date: …
Run Code Online (Sandbox Code Playgroud)

rakudo raku

8
推荐指数
2
解决办法
259
查看次数

Raku 格式

我编写了一个输出 a 的函数double,最多 25 位小数。我正在尝试将其打印为 Raku 的格式化输出。

但是,输出不正确且被截断。

参见 MWE:

my $var = 0.8144262510988963255087469;
say sprintf("The variable value is: %.25f", $var) 
Run Code Online (Sandbox Code Playgroud)

上面的代码给出的The variable value is: 0.8144262510988963000000000结果不是预期的结果。

另外,这看起来很奇怪:


my $var = 0.8144262510988963255087469;

say $var.Str.chars; # 29 wrong, expected 27

Run Code Online (Sandbox Code Playgroud)

我在以下位置测试了相同的内容C

#include <stdio.h>

int main() {
   double var = 0.8144262510988963255087469;
   printf("The variable value is: %.25lf \n", var);

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

然而,它工作得很好。sprintf鉴于和的相同性质printf,我希望这个C示例也能在 Raku 中运行。好像%lf支持

那么有解决方法来解决这个问题吗?

printf rakudo raku

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