2017-10-15 210 views
2

我正在試圖通過定義和傳遞原始操作符來實現類似於Scheme的一些功能。在方案中,您可以perl6傳遞操作符作爲參數

(define x +) (x 1 2) 

該操作將會給你解答3.在perl6,我無論如何都必須把運營商在其他功能,以達到相同的:

sub x($a) { $a * 2; } 
sub y($m, $n) { $m($n); } 
say y(&x, 3); # gives you 6 
say y(+, 3) # this is error 

有一個簡單的方法來傳遞操作符和函數?

謝謝。

回答

6

我不做計劃,但

(define x +) 

應與類似

my constant &x = &infix:<+>; 

然後,

say x(1,2) 

將輸出3爲好。

如果您發現上面使用的規範名稱太繁瑣,還有一個用於傳遞操作符的簡寫符號&[+]

請注意,我並不完全確定您要如何處理您的Perl6代碼,因爲它看起來與Scheme代碼片段有所不同。

+0

謝謝Christoph! 「常量」和「&[+]」對我來說都是新概念。我今天學到了東西!謝謝 !! – lisprogtor