如何使用rebol / red bind将块参数传递给另一个函数?

时间:2017-10-27 05:45:45

标签: rebol red

我真的不明白是否可以使用bind或其他任何东西,文档http://www.rebol.com/docs/words/wbind.html对我没有帮助。我想将块参数从f2传递给f1:

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

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

致电

 f2

打印出来

 a
 b

如何打印出来

 1
 2

在传递[a b]时(我不想传递[1 2],因为它可以一直改变而且不优雅)?是否可以使用bind或其他任何东西?

1 个答案:

答案 0 :(得分:1)

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

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

需要Red中的本地单词,因为Red中的foreach变量单词不是foreach循环的本地单词。