AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

问题[raku](coding)

Martin Hope
Pawel Pabian bbkr
Asked: 2025-04-02 17:32:41 +0800 CST

使用收集/拿取与竞赛

  • 8

我可以使用 Hyper 并行执行,并且它可以工作:

$ raku -e 'race for (^8).race(batch => 1, degree => 4) {sleep rand; .say}'
0
3
5
2
1
7
4
6

但是我怎样才能将收集/获取行为添加到这样的循环中?

在这种方法中,take 不会检测到它被包裹在 gather 上下文中:

$ raku -e '
    my @x = gather race for (^8).race(batch => 1, degree => 4) {
        sleep rand;
        take $_;
    };
    @x.say
'

Died at:
    take without gather

在这种方法中,gather 将消耗 HyperSeq 而不会真正对其进行“超级处理”:

$ raku -e '
    my @x = race gather for (^8).race(batch => 1, degree => 4) {
        sleep rand;
        take $_;
    };
    @x.say
'

[0 1 2 3 4 5 6 7]
raku
  • 3 个回答
  • 48 Views
Martin Hope
fingolfin
Asked: 2025-02-19 06:00:13 +0800 CST

如何明确使用参数的默认值?

  • 7

假设我们有以下子程序:

sub test($arg = 'defaut value') { say $arg }

我们希望传递一些参数,使子程序使用默认值,如下所示:

my $undefined-value;
test $undefined-value // Nil; # don't work, prints "Nil"

如何以最惯用的方式实现这一点?

我找到了这个解决方案,但它看起来有点奇怪:

test |($undefined-value // Empty); # works, print "defaut value"
raku
  • 1 个回答
  • 40 Views
Martin Hope
jjmerelo
Asked: 2024-10-16 15:33:35 +0800 CST

初始化数组时数组意外变平

  • 9

我不完全确定这是一个错误,一个怪癖,还是仅仅是一种不好的做法,但事实是这样的:

[0] > my @nope = [["a","b"]]; @nope.push: ["b","c"]
[a b [b c]]
[1] > my @yipee = []; @yipee.push: [["a","b"]]; @yipee.push: ["b","c"]
[[a b] [b c]]

因此,如果您使用列表列表初始化数组,它将被Slipped,从而强制使用 2 个步骤来初始化它。我这里遗漏了什么吗?

raku
  • 1 个回答
  • 32 Views
Martin Hope
mikeLundquist
Asked: 2024-08-08 21:15:59 +0800 CST

如何使用 Raku Grammars 的梳理功能?

  • 9

我想将 Rakucomb函数与来自语法的正则表达式一起使用,而不是使用独立的正则表达式。例如,在以下解析来自 stdin 的日志的代码中journalctl,我想将&hin替换MAIN为类似以下内容&Journalctl::full_log:

role Log {
  token preamble { ... };
  token message { <-preamble>* };
  regex full_log { <preamble> <message> };
}

grammar Journalctl does Log {
  token date { \S+\s\d\d\s\d\d\:\d\d\:\d\d};
  token hostname { \S* };
  token ctl_unit { <-[\[]>+ };
  token pid { \d+ };
  regex preamble { <date> <.ws> <hostname> <.ws> <ctl_unit> \[ <pid> \]\: };
}

sub MAIN( ) {
  my regex h { h. };
  for $*IN.comb(&h) -> $wof {  # FIXME
    say $wof;
  }
}

以下是一些示例journalctl日志,供参考:

Jun 25 14:45:54 cpu-hostname systemd-timesyncd[725]: Initial synchronization to time server 185.125.190.56:123 (ntp.ubuntu.com).
Jun 25 14:45:54 cpu-hostname systemd-resolved[722]: Clock change detected. Flushing caches.
raku
  • 1 个回答
  • 38 Views
Martin Hope
biancospino
Asked: 2024-05-12 07:18:36 +0800 CST

$¢ 变量在 Raku 中起什么作用?

  • 13

文档说只有 3 个特殊的词法变量 ( ,$_ , $/) $!。

然而,检查 MY::pseudostash,似乎一个名为 的变量$¢也存在,并且没有记录(或者至少,在 docs.raku 中搜索 $¢ 没有结果)(编辑:根据接受的答案,这实际上是错误的,确实有记录)。

say MY::.hash;
# ==> PseudoStash.new((!UNIT_MARKER => (!UNIT_MARKER), $! => Nil, $/ => Nil, $=finish => (Mu), $=pod => [], $?PACKAGE => (GLOBAL), $_ => (Any), $¢ => Nil, &foo => &foo, ::?PACKAGE => (GLOBAL), EXPORT => (EXPORT), GLOBALish => (GLOBAL)))

sub foo {say MY::.hash}
foo();
# ==> PseudoStash.new(($! => Nil, $/ => Nil, $_ => (Any), $¢ => Nil))

$¢=5;
# The compiler doesn't complain, despite $¢ not having been declared

say $¢ 
# ==> 5

$¢有什么特殊的意义吗?

如果重要的话,我正在使用 rakudo v2023.12,实现 v6.d。

raku
  • 1 个回答
  • 298 Views
Martin Hope
Brass P.
Asked: 2023-09-09 03:28:31 +0800 CST

是否可以预定义 Str 的初始大小?

  • 8

在某些语言中,开发人员可以指定字符串的初始大小。Raku有类似的东西吗?我有一个字符串,我将在其中连接文本几千次。可以在创建字符串之前计算最终大小。我想测试一下是否可以节省几百毫秒的时间。

raku
  • 2 个回答
  • 36 Views
Martin Hope
Brass P.
Asked: 2023-08-27 04:49:15 +0800 CST

避免在一系列条件中重复相同的变量

  • 10

我有一个带有条件的脚本和一堆使用相同变量的检查。与此类似的东西:

my $size = "123B";
say "OK" if $size ~~ Str && $size.ends-with("B") && $size.chop >= 0;

是否可以以一种避免重复的方式重写该行$size?我想到了类似交汇点的东西,但我不知道如何应用到它。或者也许是其他东西,但离我的线更短。

raku
  • 2 个回答
  • 75 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve