2013-11-11 3 views
0

Мне интересно, можно ли получить функцию, получить переменную, если она не передана явно.Переменная Доступность в Erlang

Проблема в основном заключается в очистке моего кода, так как у меня есть много функций, которые необходимо передать каждой переменной, которая когда-либо будет использоваться для следующей функции.

В SML, например, можно было бы легко сделать это с чем-то вроде:

fun myFun varx vary varz 
    let 
    fun otherFun() = varx 
    fun otherFun2() = vary 
    in 
    otherFun() + otherFun() 
end 

Есть ли способ, чтобы другие функции, чтобы увидеть переменные, которые явно не переданные ему? Или это не так, как можно было бы запрограммировать в erlang?

ответ

1

Erlang переменная сфера работает во многом таким же образом:

например:

add_two(X) -> 
F = fun(Y) -> 
     X + Y 
    end, 
    F(2). 

Надеется, что это помогает.

+1

Но он работает только при определении замыкания/забавы, вы не можете создавать функции, которые являются локальными для другой функции. – rvirding

Смежные вопросы