@protalk

Ключевое слово «вызвать саму себя» в языках программирования?

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

Может кто-нибудь знает языки с такой фичей?
  • Вопрос задан
  • 441 просмотр
Пригласить эксперта
Ответы на вопрос 3
@alex_ak1
Тут по моему ограничение иного рода - как можно вызвать что-то без имени? То есть в обычной рекурсии я беру свое имя и образуется рекурсия, а вы предлагаете сделать специальную конструкцию, которая будет делать это же самое. Получается просто усложнение синтаксиса без особой на то пользы
Ответ написан
@AlexSku
не буду отвечать из-за модератора
Вирт показал, что рекурсию можно свести к итеративной схеме, поэтому без рекурсии можно обойтись.
Ответ написан
@theg4sh
"вызвать саму себя", что именно вы себе этим представляете? Сокращением кода? А что делать с агрументами?

Знаю только, что подобные вещи точно можно использовать в Bash
function testit() {
    echo "$1"
    [ -n "$1" ] && return;
    echo $__FUNCNAME__ "ok"
}

testit

JavaScript
function testit() {
    if (arguments.length>1 && arguments[1]<2) {
        console.log(arguments[0], arguments[1]);
        arguments.callee("offtop", arguments[1]+1);
    } else {
        console.log("no arguments left");
    }
}

testit("test", 1);

Как видно, имя функции слегка пухнет при таком использовании, так что дело Ваше пользоваться или нет.

Предположу, что и другие многие скриптовые языки располагают подобным инструментом.
Наверняка, этой возможностью располагают Java и С#. Гугл в помощь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы