2017-10-15 1 views
2

원시 연산자를 정의하고 전달하여 Scheme과 비슷한 기능을 구현하려고합니다.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 

이 있습니까 : 계획에서, 당신은

(define x +) (x 1 2) 

이 작업은 어떻게 든 동일한을 달성하기 위해 다른 함수에서 연산자를 배치해야합니다, 당신은 perl6 3. 답변을 줄 것입니다 수 있습니다 연산자와 함수를 전달하는 쉬운 방법?

감사합니다.

답변

6
내가 계획을하지

하지만

(define x +) 

뿐만 아니라, 그런

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

처럼 뭔가

say x(1,2) 

가 출력 3 일치해야합니다.

위에 사용 된 정식 이름이 너무 성가시다면 연산자를 전달하기위한 약어 표기법이 있습니다 (&[+]).

당신이 Perl6 코드로 무엇을하려했는지 완전히 모르겠다. Scheme 스 니펫과는 약간 다르게 보인다.

+0

감사합니다. Christoph !! "상수"와 "& [+]"는 모두 새로운 개념입니다. 나는 오늘 무언가를 배웠다! 고맙습니다 !! – lisprogtor