是否可以在 rebol 或 red 中动态生成函数

Is it possible to generate function dynamically in rebol or red

而不是硬编码(这里是人为的例子):

    f1: func[][print "f1"]
    f100: func[][print "f100"]
    etc...

是否可以做这样的事情

    for num 1 100 1 [ 
      set to-word rejoin ["f" num] func[][
        print rejoin ["f" num]
      ]
    ]

除了它不起作用,它总是给出 "f100"(为什么实际上 num 等于 100 对我来说是个谜,虽然这不是这里的问题:闭包?)。

for num 1 100 1 [ 
  set to-word rejoin ["f" num] func[] compose/deep [
    print rejoin  ["f"  (num)]
  ]
]

>> f1
f1
>> f2
f2
>> f99
f99

您的函数的结果始终是 f100,因为它们都与您的 for 循环的结果共享同一个词 num。你可以看到,如果你这样做,例如 source f1.