Functional programming Rebol匿名函数行为很奇怪

Functional programming Rebol匿名函数行为很奇怪,functional-programming,rebol,Functional Programming,Rebol,下面我的匿名func测试只执行一次: repeat i 5 [ func[test][ print test ] rejoin ["test" i] ] 我必须命名它,以便能够按预期执行5次: repeat i 5 [ test: func[test][ print test ] test rejoin ["test" i] ] 这很奇怪。在循环中使用匿名函数真的不可能吗?您的第一个代码示例只定义了匿名函数五次。它不调用它。加上一个do,一切都会好起来: re

下面我的匿名func测试只执行一次:

repeat i 5 [
  func[test][
    print test
  ] rejoin ["test" i]
]
我必须命名它,以便能够按预期执行5次:

repeat i 5 [
  test: func[test][
    print test
  ] test rejoin ["test" i]
]

这很奇怪。在循环中使用匿名函数真的不可能吗?

您的第一个代码示例只定义了匿名函数五次。它不调用它。加上一个do,一切都会好起来:

repeat i 5 [
  do func[test][
    print test
  ] rejoin ["test" i]
]

test1
test2
test3
test4
test5

您的第一个代码示例只定义了匿名函数五次。它不调用它。加上一个do,一切都会好起来:

repeat i 5 [
  do func[test][
    print test
  ] rejoin ["test" i]
]

test1
test2
test3
test4
test5