【问题标题】:Ti-basic passing function as an argument to another functionTi-basic 将函数作为参数传递给另一个函数
【发布时间】:2014-05-07 22:35:50
【问题描述】:

在 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=”编辑器中输入我的函数,然后在函数内部访问它们,但我真的希望能够直接输入数学函数作为参数。我该怎么做?

【问题讨论】:

    标签: function ti-basic


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 此解决方案的局限性在于您只能使用预定义的函数。请参阅我的答案以获得更通用的解决方案。
      猜你喜欢
      • 2017-08-07
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多