Возникла проблема с использованием макроса в Erlang
пример кода
-define(Test(Local1),
fun(Local2)->
Res=Local1+Local2,
Res
end
).
test_lambda()->
?Test(1)(2).
При вставке его в код, создается замыкание на контекст конкретной функции, тоесть есть вызвать его так:
test_lambda()->
Res=6,
?Test(1)(2).
то будет выпадать ошибка потому что не может выполнить patern matching
6=3, можно ли как-либо запретить создавать замыкание? или определить Res как локальную переменную для макроса, параметры макроса определяются как локальные, тоесть если вызвать так
test_lambda()->
Local1=1,Local2=5,
?Test(1)(2).
то работать будет. Конечно иожно давать такие имена котореые точно не встретятся в программе, но всеравно это не надежно, хочется узнать есть ли более правильные способы. Макросы использую для доступа к базе.
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Cy6erBr4in
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Cy6erBr4in
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Cy6erBr4in
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Scheme + functional programming (2007)
- Форум Erlang (2012)
- Форум Erlang (2015)
- Форум Erlang (2015)
- Форум Замыкание как аргумент другого замыкания (2018)