новости сообщество форум вики
Erlang по-русски. Форум » Erlang »

Макросы

(3 posts)

  1. Можно ли сделать макрос, который объявляет сразу несколько функций? Даже рас?ирю вопрос: Может ли макрос сформировать несколько выражений уровня модуля?

    Что-то типа такого:
    -define(XXX(N), ( N(A) -> A. N(A,B) -> A+B. ) ).

    ?XXX(hello).

    Требуется, чтобы в результате были объявлены две функции:
    hello(A) -> A.
    hello(A,B) -> A+B.

    Отправлено 8 мес. назад #
  2. Увы, вроде никак. По-моему, макросы можно использовать только внутри функций (в аргументах или в теле функции).

    Отправлено 8 мес. назад #
  3. С генерацией одной функции прокатывает.
    Такое работает:

    -export([test/1]).
    -define(XXX(N), N(A) -> A*A).

    ?XXX(power2).
    ?XXX(another_power2).

    test(A) -> power2(A).

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

    Отправлено 8 мес. назад #

RSS экспорт этой темы

Отправить сообщение

Вы должны войти в систему, чтобы оставлять сообщения.

 
 

так же

Популярные тэги



Currently online

No Members around.

сообщество

http://groups.google.com/group/erlang-russian/feed/rss_v2_0_msgs.xml