Ti-basic传递函数作为另一个函数的参数

时间:2014-05-07 22:35:50

标签: 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

我知道我可以在“y =”编辑器中输入我的函数,然后在函数内部访问它们,但我真的希望能够直接输入数学函数作为参数。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

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的定义用双引号括起来,以便将其视为字符串。

答案 1 :(得分:1)

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

http://rosettacode.org/wiki/Higher-order_functions#TI-89_BASIC