gpt4 book ai didi

regex - perl6 需要帮助以了解有关 proto regex/token/rule 的更多信息

转载 作者:行者123 更新时间:2023-12-04 11:01:38 25 4
gpt4 key购买 nike

以下代码取自 the Perl 6 documentation ,并且我正在尝试在进行更多实验之前了解更多信息:

proto token command {*}
token command:sym<create> { <sym> }
token command:sym<retrieve> { <sym> }
token command:sym<update> { <sym> }
token command:sym<delete> { <sym> }
  • *在第一行是什么明星?可以是别的东西吗,比如

    proto token command { /give me an apple/ }
  • “sym”可以是别的东西吗,比如

    command:eat<apple> { <eat> } ?
  • 最佳答案

    {*}告诉运行时调用正确的候选者。
    而不是强制你写 {{*}}对于只调用正确的常见情况,编译器允许您将其缩短为 {*}
    所有 proto 都是如此例程如 sub , method , regex , token , 和 rule .

    regex 的情况下proto 例程,只有一个裸 {*}被允许。
    主要原因可能是因为没有人真正想出一个好方法让它在正则表达式子语言中合理地工作。

    所以这里是一个 proto sub 的例子这做了一些所有候选人都共有的事情。

    #! /usr/bin/env perl6
    use v6.c;
    for @*ARGS { $_ = '--stdin' when '-' }

    # find out the number of bytes
    proto sub MAIN (|) {
    try {
    # {*} calls the correct multi
    # then we get the number of elems from its result
    # and try to say it
    say {*}.elems # <-------------
    }
    # if {*} returns a Failure note the error message to $*ERR
    or note $!.message;
    }

    #| the number of bytes on the clipboard
    multi sub MAIN () {
    xclip
    }

    #| the number of bytes in a file
    multi sub MAIN ( Str $filename ){
    $filename.IO.slurp(:!chomp,:bin)
    }

    #| the number of bytes from stdin
    multi sub MAIN ( Bool :stdin($)! ){
    $*IN.slurp-rest(:bin)
    }

    sub xclip () {
    run( «xclip -o», :out )
    .out.slurp-rest( :bin, :close );
    }

    关于regex - perl6 需要帮助以了解有关 proto regex/token/rule 的更多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42291598/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com