- 論壇徽章:
- 0
|
這幾天Larry引入了一個新的list操作符,我覺得比較有趣。所以今天來講講:
要介紹的操作符名叫series,寫起來也很簡單: ... #三個小圓點
恩,沒錯!和perl5的 ..很像嘛。(實際上,在perl6中, 1..10也還是可以用的,不過分的細了點,還多了ff操作符。以后有時間一起講。)
樣子像,在功能上也是很像的,只是功能上更強大:
1 ... {$_ + 1}; # 1,2,3,4............
1,1 ... {$a + $b} # 1,1,2,3........... fib
從上面的簡單例子可以看出,所謂series操作符,就是用一個function做一個iterator, 所以我們還可以有更多更有想象力的操作:
() ... &rand # 隨機序列
1 ... {-$_} # 1, -1, 1, -1............
False ... &prefix:<!> # False, True, False...
當然, 可以通過if語句,來限制iterator:
1 ... { $_ + 1 if $_ < 10 } #1..10
... { $_ + 10 if $_ < 100 } # 10,20,30......90
... { $_ + 100 if $_ < 1000 } # 100, 200......900
1 ... {$_ + 1 if @_ <10} # 也可以, 不過性能有損失
按照spec規(guī)定,簡單的數(shù)學,幾何級數(shù),可以自動判斷出來:
1, 3, 5 ... * # 奇數(shù)序列
1, 2, 4 ... * # power 2 序列
好了, 基本的介紹就是這么多,大家可以多想想用法,然后看看有什么漏洞。這個操作符是Larry前幾天弄得,所以現(xiàn)在還沒有什么perl6版本實現(xiàn)它,大家就過過干癮吧!;) |
評分
-
查看全部評分
|