2016-10-19 4 views
3

함수를 빨간색으로 인수로 전달할 수 있습니까? 아니면 빨간색이 필요하지 않습니까?args가있는 함수를 빨간색으로 전달할 수 있습니까?

내가

f: does [print 1] do f 
>> 1 

이 어떻게 (여러) 인수로이 작업을 할 수 있습니다 "인수 또는 로컬 변수"함수를 정의 할 수 있습니다 does를 사용하십니까? does은 방법이 아닙니다. 무엇입니까?

내가 좋아하는 뭔가를 원하는 : (이 작동하지 않음 다음) :

; does NOT work 
f: does-with-args [x][print x] do f 23 
>> 1 

이 문서 http://blog.revolucent.net/2009/05/javascript-rebol.html 저자의 마지막 단락에서 내가 흥분 있도록 "함수는 인수로 전달 될 수 있도록"라고하지만, 그것은 단지 does :)을 사용하고 있습니다. 그러나 나는 그것이 가능하다는 것을 배웠다.

답변

3

어떻게 함수를 인수로 빨간색으로 전달할 수 있습니까?

이 질문의 본질하지 않는 것,하지만 당신은 몇 가지 방법에 인수로 함수를 전달할 수 있습니다

my-func: func [their-func [any-function!]][their-func "Stuff"] 
my-func :print 
my-func func [thing][probe uppercase thing] 

가 어떻게이 작품으로 만들 수 있습니다 (여러) args?

여기에는 두 가지 가능성이 있습니다. 하나는 적용입니다 :

my-func: func [thing][print uppercase thing] 
apply :my-func ["Foo"] 

또 다른이 블록을 구축하는 것입니다 마십시오 :

do collect [keep 'my-func keep "Bar"] 
do collect [keep :my-func keep "Baz"] ; keeps the function itself 

NB : 기발한 될 수 있습니다 적용 나는 아직 같이 적색으로 실험 할 가치가 있다고 생각하지 않습니다 .

관련 문제