在 JavaScript 中,我可以去
const materials = [
'Hydrogen',
'Helium',
'Lithium',
'Beryllium'
];
console.log(materials.map(material => material.length));
// expected output: Array [8, 6, 7, 9]
Run Code Online (Sandbox Code Playgroud)
我猜 raku 在功能上有一些印记 - 我想知道是否有人可以澄清等效代码(请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions)
我正在使用MixHash将两个Hashes与Bag add(+)运算符组合在一起.这似乎有效 - 但是...我有点惊讶的是,工会的结果需要重新强制回到MixHash.
我的猜测是Bag add(+)infix操作符首先将所有内容强制转换为Bag并将结果作为Bag返回.这对我来说可能有风险,因为我的一些重量是负的(因此首先是混合).这会正确地增加负重吗?
或者,是否有Mix add(+)运算符?
my MixHash $dim-mix;
for ... {
my $add-mix = $!dims.MixHash;
$dim-mix = $dim-mix ?? ( $dim-mix (+) $add-mix ).MixHash !! $add-mix;
}
dd $dim-mix;
Run Code Online (Sandbox Code Playgroud)
现在我看一下这个释义代码,或许有一些三元的表述?!既然已经在左边了,可以避免在测试中拼出$ dim-mix?
非常感谢任何建议!
我去
export PERL6LIB="/GitHub/perl6-Units/lib"
Run Code Online (Sandbox Code Playgroud)
然后
echo $PERL6LIB
/GitHub/perl6-Units/lib
Run Code Online (Sandbox Code Playgroud)
但是当我跑步的时候 perl6 t/01-basic.t
use v6;
use Test;
plan 3;
lives-ok {
use Units <m>;
ok @Units::UNITS.elems > 0;
ok (0m).defined;
}
done-testing;
Run Code Online (Sandbox Code Playgroud)
我仍然得到一个错误
===SORRY!===
Could not find Units at line 8 in:
/Users/--me--/.perl6
/usr/local/Cellar/rakudo-star/2018.01/share/perl6/site
/usr/local/Cellar/rakudo-star/2018.01/share/perl6/vendor
/usr/local/Cellar/rakudo-star/2018.01/share/perl6
CompUnit::Repository::AbsolutePath<140707489084448>
CompUnit::Repository::NQP<140707463117264>
CompUnit::Repository::Perl5<140707463117304>
Run Code Online (Sandbox Code Playgroud)
在Perl 5中,我会习惯于print "@INC";在抛出错误之前查看为lib搜索的路径.使用say flat $*REPO.repo-chain.map(*.loaded);它们在加载之前或之后抛出异常.
任何帮助将非常感激 - 或者可能暗示放入什么,~/.perl6因为我无法使符号链接工作.
从说的文档中,
Returns the self-reference to the instance itself:
my $b; # defaults to Any
say $b.serial.^name; # OUTPUT: «Any?»
my $breakfast = 'food';
$breakfast.serial.say; # OUTPUT: «food?»
Run Code Online (Sandbox Code Playgroud)
我没有最雾的例程,请问有人可以解释吗?
对于 Duration,为什么我需要手动将 Rat 强制为 Real 而不是 Int?
这是基于实施 Perl 6.d 的 MoarVM 2020.01.1 版构建的 Rakudo 2020.01 版。在 OSX 上。
say $v.WHAT; #(Int)
$v = Duration.new( $v );
say $v; #20
my $w = 20.0;
say $w.WHAT; #(Rat)
$w = Duration.new( $w.Real );
say $w; #20
my $x = 20.0;
say $x.WHAT; #(Rat)
$x = Duration.new( $x );
say $x; #hangs
Run Code Online (Sandbox Code Playgroud) 我正在寻求帮助以防止我扯掉头发。我有几个相互依赖的模块:
现在我创建了一个新模块 Physics::UnitAffix,其工作是将 SI 前缀和 SI 单位的组合作为 raku 后缀运算符(cm、mm、nm 等)导出到脚本命名空间中。
这是新模块的高尔夫版本:
unit module Physics::UnitAffixQ:ver<0.0.4>:auth<Steve Roe (p6steve@furnival.net)>;
{
use Physics::Unit;
Unit.new( factor => 0.000000001, offset => 0, defn => 'nanometre', type => '',
dims => [1,0,0,0,0,0,0,0], dmix => ("metre"=>1).MixHash,
names => ['nm'], stock => True );
}
sub do-postfix( Real $v, Str $n, Str $t ) {
my $pmt = "Physics::Measure::$t";
return ::($pmt).new(value => $v, units => $n);
}
sub postfix:<nm> (Real:D $x) is export(:DEFAULT) { do-postfix($x,'nm','Length') } …Run Code Online (Sandbox Code Playgroud) 看到这里,我有点惊讶:
> say my @i.so
False
> say my @i[3].so
True
Run Code Online (Sandbox Code Playgroud)
谁能解释一下,为什么在乐曲中,空数组是假的,而空形数组是真?
我在另一个问题中遇到了这个错误信息,我想知道$:部分签名的含义是什么?
Cannot resolve caller index(Str: Str, Any); none of these signatures match:
(Str:D $: Cool:D $needle, *%_)
(Str:D $: Str:D $needle, *%_)
(Str:D $: Cool:D $needle, Cool:D $pos, *%_)
(Str:D $: Str:D $needle, Int:D $pos, *%_)
Run Code Online (Sandbox Code Playgroud) 当我运行这个 raku 脚本时...
my $proc = run( 'tree', '--du', :out);
$proc.out.slurp(:close).say;
Run Code Online (Sandbox Code Playgroud)
我在 MacOS 上收到此错误...
Malformed UTF-8 near bytes ef b9 5c
Run Code Online (Sandbox Code Playgroud)
......而不是像zsh这样的树输出,这是我想要的......
.
??? 00158825_20210222_0844.csv
??? 1970-Article\ Text-1971-1-2-20210118.docx
??? 1976-Article\ Text-1985-1-2-20210127.docx
??? 2042-Article\ Text-2074-1-10-20210208.pdf
??? 2045-Article\ Text-2076-1-10-20210208.pdf
??? 6.\ Guarantor\ Form\ (A).pdf
Run Code Online (Sandbox Code Playgroud)
我试过slurp(:close, enc=>'utf8-c8')了,错误是一样的。
我也试过...
shell( "tree --du >> .temp.txt" );
my @lines = open(".temp.txt").lines;
dd @lines;
Run Code Online (Sandbox Code Playgroud)
......错误是一样的。
打开 .temp.txt 揭示了这一点......
.
â<94><9c>â<94><80>â<94><80> [ 1016739] True
â<94><9c>â<94><80>â<94><80> [ 9459042241] dir-name
â<94><82>Â Â â<94><9c>â<94><80>â<94><80> [ 188142] Business …Run Code Online (Sandbox Code Playgroud)