Код...

5 views
Skip to first unread message

Alexander Dergachev

unread,
Oct 8, 2009, 3:45:45 PM10/8/09
to erlang-...@googlegroups.com
Всем привет.

Сегодня натолкнулся в одном из блоков нашего проекта на один кусок кода... там было что-то типа:


generate_blablabla(Param1, Param2, Param3) ->
    Val1 = fun_get_bla(blablabla),
    .......
    fun() ->
        Bla = fun_1(qwe, asd),

        case fun_2(1, 2, 3) of
            {..., ...} ->                       %% тут я уже устал придумывать код :)
                   ....
            _ ->
                   ....
        end,
        ....

    end(),

    fun() ->
        ...
    end(),
  .........

вообщем суть в чем.. если кто сразу не заметил, в конце объявления фана стоят скобки '()', соответственно, только что созданный фан будет тут же вызван (вообще этот код на самом деле заметил не я, а сотрудница... для нее вообще была загадка, как это работает :)) это уже я ей показал скобки...).... так вот, для меня остается только один вопрос, для чего это может быть использовано (для сотрудницы было больше вопросов :))...

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

какие еще могут быть идеи?

это так... любопытство :)

Зарание спасибо за ответы.

--
With Best Regards,
Alexander Dergachev

Maxim Treskin

unread,
Oct 8, 2009, 10:54:09 PM10/8/09
to erlang-...@googlegroups.com
Первое, что приходит в голову, возможно, что этот код был сгенерен бз
участия человека (каким-то инструментом), и дабы избежать пересечения
с какими-либо внешними переменными, сделано так, чтобы не отслеживать
их значения.

--
Maxim Treskin

astashov

unread,
Oct 8, 2009, 8:39:39 PM10/8/09
to Erlang в России
Часто вижу такое в javascript'е, используется именно как пространство
имен. Скорее всего и тут так же.

Artem Semenov

unread,
Oct 9, 2009, 7:58:18 AM10/9/09
to erlang-...@googlegroups.com
>Часто вижу такое в javascript'е, используется именно как пространство
>имен. Скорее всего и тут так же.

Там другая конструкция. (funcion(){...})(...)

9 октября 2009 г. 4:39 пользователь astashov <anton.a...@gmail.com> написал:

Alexander Dergachev

unread,
Oct 10, 2009, 9:16:52 AM10/10/09
to Erlang в России
Да, хорошая мысль кстати, в голову не пришла сразу, но все же больше
склоняюсь к варианту с пространствами имен :)

Спасибо всем за ответы... буду искать еще больше интересного и разного
кода :)

Reply all
Reply to author
Forward
0 new messages