运算符 – Perl6运算符问题

前端之家收集整理的这篇文章主要介绍了运算符 – Perl6运算符问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在看着愚蠢/可爱/辉煌的 “sleep sort” that seems to have originated over at 4chan.为了对一系列的整数进行排序,这个想法是粗略的
    
    foreach elt in @array
        spawn thread(elt)
@H_502_3@ 
 

thread(n)的作用

    sleep n
    print n
@H_502_3@ 
 

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

有一个Perl6实现

@foo = @foo>>.&sleep;
@H_502_3@ 
 

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

有谁能解释一下?

谢谢

解决方法

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

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

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

原文链接:https://www.f2er.com/Perl/241660.html

猜你在找的Perl相关文章