加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

运算符 – Perl6运算符问题

发布时间:2020-12-15 21:43:38 所属栏目:大数据 来源:网络整理
导读:我正在看着愚蠢/可爱/辉煌的 “sleep sort” that seems to have originated over at 4chan.为了对一系列的整数进行排序,这个想法是粗略的 foreach elt in @array spawn thread(elt) thread(n)的作用 sleep n print n 所以较小的值会更早地打印出来. 有一个P
我正在看着愚蠢/可爱/辉煌的 “sleep sort” that seems to have originated over at 4chan.为了对一系列的整数进行排序,这个想法是粗略的
    
    foreach elt in @array
        spawn thread(elt)

thread(n)的作用

    sleep n
    print n

所以较小的值会更早地打印出来.

有一个Perl6实现

@foo = @foo>>.&sleep;

我得到了>> ‘超级’运算符,并且这假定超级自动并行化.但是.&困惑我.

有谁能解释一下?

谢谢

解决方法

如果你有一个函数yourfunc,那么你可以用&符号& yourfunc获取它的引用.语法$obj.$function只用一个参数$obj调用$function.所以人们也可以编写$function($obj) – 除了这个语法不允许使用超级.

但是,无论谁想出这个“实施”,三个账户都是错误的:

> hyper运算符允许编译器生成许多线程来执行每个方法,它不必一次为所有这些线程生成一个线程 – 所以“随机排序”不能工作>超级运算符可以随机化方法的执行顺序,但它必须保留顺序或返回的项目 – 所以@foo根本不会被排序,即使第一个点不适用.> sleep()应该返回睡眠的秒数,而不是参数.如果有人在计算过程中将计算机设置为睡眠状态,则结果可能会高得多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读