То, что вы поместили в кодовый блок , является не функцией, а источником функции, поэтому необходимо сделать один раз, чтобы создать функцию, затем сделать снова как функцию.
Вы можете видеть это так:
length? code-block
== 3
Чтобы просто поместить функцию в кодовый блок , можно сделать это:
code-block: copy []
append code-block func[][print "a"] ;; no block around the FUNC
Или это:
code-block: copy []
append code-block reduce [func[][print "a"] ] ;; use REDUCE to evaluate the block
В любом случае, то, что находится в кодовом блоке , теперь является просто функцией:
length? code-block
== 1
type? first code-block
== function!
do code-block ;; what you asked for!
a