2017-10-27 5 views
0

바인드 또는 다른 것으로 처리 할 수 ​​있는지 이해할 수 없다면 http://www.rebol.com/docs/words/wbind.html 문서가 도움이되지 않습니다. 나는 F2에서 F1에 블록 인수를 전달하려는 :rebol/red bind를 사용하여 블록 인수를 다른 함수로 전달하는 방법?

f1: func[block][ 
    foreach b block [ 
     print b 
    ] 
    ] 

    f2: func[][ 
    a: 1 
    b: 2 
    block: [a b] 
    f1 block 
    ] 

호출

f2 

그것은 출력합니다

a 
b 

그것이

1 
2 

을 인쇄 만드는 방법 [ab]를 (나는 [1 2]을 (를) 전달하고 싶지 않습니다.) 통과하는 동안 그 모든 시간을 바꿀 수 있고 그것은 우아하지 않습니다)? 바인드 또는 다른 어떤 것이 가능합니까? 레드에서 foreach는 변수 Word와 같은 레드의 로컬 단어에 대한 필요가있다

답변

1
f1: func[block /local i][ 
    foreach i block [ 
     print get i 
    ] 
] 

또는

f1: func[block /local b][ 
    foreach b reduce block [ 
     print b 
    ] 
] 

는 foreach 루프 로컬 없습니다.

+1

Red에서 'function'생성자를 사용하면 로컬 단어를 선언 할 필요가 없습니다. – DocKimbel