【问题标题】:Call a function which is a result of another function call调用一个函数,该函数是另一个函数调用的结果
【发布时间】:2016-11-28 16:37:07
【问题描述】:

我有一个函数,它接受两个参数并返回一个元数为 1 的函数:

make_fun(A, B) -> 
    fun(C) -> 
        A + B + C
    end.

我使用上面的函数创建一个函数,然后将它应用到这样的参数:

Fun = make_fun(1,2),
Result = Fun(3).

所以Result = 6 在这之后。

问题是:有没有办法在不将函数存储在Fun 中的情况下做同样的事情?

这样的事情会很理想,但似乎不起作用:

Result = make_fun(1,2)(3).

【问题讨论】:

  • (make_fun(1, 2))(3)?
  • @Dogbert 是的,这行得通,谢谢

标签: function lambda erlang


【解决方案1】:
make_fun(A, B) ->
      fun(C) ->
          A + B + C
      end.

只需将make_fun 放在括号中即可:

(make_fun(1, 2))(3).

【讨论】:

    【解决方案2】:

    这个怎么样?

    结果 = 乐趣(make_fun(1,2))。

    【讨论】:

    • 你可能误读了这个问题,我试图完全不使用 Fun
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多