gpt4 book ai didi

rebol - 我怎样才能用红色的参数传递一个函数?

转载 作者:行者123 更新时间:2023-12-01 13:41:08 26 4
gpt4 key购买 nike

如何将函数作为红色参数传递?或者我不需要红色的吗?

使用 does 我可以定义一个“没有参数或局部变量”的函数

f: does [print 1] do f
>> 1

如何使用(多个)args 使其工作? 难道不是这样,什么是?

我想要类似的东西:(以下不起作用):

; does NOT work
f: does-with-args [x][print x] do f 23
>> 1

本文最后一段http://blog.revolucent.net/2009/05/javascript-rebol.html作者说“允许函数作为参数传递”让我很兴奋,但它也只是使用 does :)。但我了解到这是可能的。

最佳答案

How can I pass a function as an argument in red?

这似乎不是你问题的本质,但你可以通过几种方式将函数作为参数传递:

my-func: func [their-func [any-function!]][their-func "Stuff"]
my-func :print
my-func func [thing][probe uppercase thing]

How can I make this work with (multiple) args?

这里有两种可能性。一个是申请:

my-func: func [thing][print uppercase thing]
apply :my-func ["Foo"]

另一种是构建一个 block 并执行它:

do collect [keep 'my-func keep "Bar"]
do collect [keep :my-func keep "Baz"] ; keeps the function itself

注意:APPLY 可能很古怪,我认为目前还不是红色,值得尝试。

关于rebol - 我怎样才能用红色的参数传递一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40123974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com