Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 将函数作为参数传递给另一个函数_Function_Ti Basic - Fatal编程技术网

Function 将函数作为参数传递给另一个函数

Function 将函数作为参数传递给另一个函数,function,ti-basic,Function,Ti Basic,在Matlab中,您可以声明一个匿名函数并将其传递给另一个函数 [y] = someFunction(@(x) x.^2 , [a bunch of numbers]); 我想在我的TI-89计算器上做类似的事情。我有一个函数,它把一个“数学函数”作为它的参数之一,我试着这样做: myfunction(3/x,1,2) myfunction(f,xl,xu) Func local a,b f(xl)→a f(xu)→b Return [a,b] EndFunc 我的函数如下所示: myfu

在Matlab中,您可以声明一个匿名函数并将其传递给另一个函数

[y] = someFunction(@(x) x.^2 , [a bunch of numbers]);
我想在我的TI-89计算器上做类似的事情。我有一个函数,它把一个“数学函数”作为它的参数之一,我试着这样做:

myfunction(3/x,1,2)
myfunction(f,xl,xu)
Func
local a,b
f(xl)→a
f(xu)→b
Return [a,b]
EndFunc
我的函数如下所示:

myfunction(3/x,1,2)
myfunction(f,xl,xu)
Func
local a,b
f(xl)→a
f(xu)→b
Return [a,b]
EndFunc
我知道我可以在“y=”编辑器中输入函数,然后在函数中访问它们,但我真的希望能够将数学函数直接作为参数输入。我该怎么做?

“TI-89 BASIC没有一流的功能;虽然存储在变量中的函数定义是完全动态的,但从变量中提取函数值而不是调用它是不可能的。在本例中,我们使用间接运算符#,它接受一个字符串并返回命名变量的值,将函数名用作要传递的内容。”


TI-BASIC中的内置
expr
函数可用于将字符串转换为表达式。以下是如何以这种方式实现函数:

myfunction(f,xl,xu)
Func
Local a,b,x

xl→x
expr(f)→a

xu→x
expr(f)→b

Return [a,b]
EndFunc

对函数的调用将是
myfunction(“3/x”,1,2)
。请确保将
f
的定义括在双引号中,以便将其视为字符串。

此解决方案的局限性在于,您只能使用预定义函数。有关更一般的解决方案,请参阅我的答案。