1. JavaScript / Говнокод #5196

    +177

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function yap(){
      return function(){
        yap();
      }
    }

    Вот такое оно, функциональное програмирование

    Запостил: art543484, 10 Января 2011

    Комментарии (21) RSS

    • yap! yap! yap! yap! yap!!!111
      moar!
      в данный момент отклики на загрузки файлов вяжу. кабы самому такое не нахуячить :))
      Ответить
    • тонкая рекурсия )
      Ответить
    • Вернуть функцию, вызывающую себя.
      Долго понимал.
      Ответить
      • я сам минут 5 думал как это сделать ведь
        function yap(){
            return yap();
        }

        Просто ушлобы в рекурсию.
        А у меня рекурсивное замыкание
        Ответить
        • А написать return yap; нельзя?
          Бесскобочная запись же не делает вызова, как в дельфе?
          Ответить
          • в принципе да, но отличие все же есть:
            одно дело возвращать себя, а другое (в сабже) - каждый вызов создавать новую анонимную функцию, которая вызовет создание еще одной анонимной функции....
            Ответить
          • Это сработает но не забывайте что вы читаете говнокод.
            Кстати сейчас пришла идея покруче.
            function yap(){
            var arg = argumetns;
            return function(){
            yap.apply(window,arg).apply(window,argum ents);
            }
            }
            При вызове функции мы создаем функцию которая вызывается с аргументами данной и эта новая функция опять создает новою которую вызываем с аргументами данной.
            Рекурсивно-каррированая функция
            Ответить
            • мсье тонкий говногурман, однако = )
              Ответить
              • мне делать нечего однако,
                а на хабр я однако попал,
                при чем тот кусок кода так и оставил
                Ответить
                • интересно, если бы на этот ваш хабрахабр пускали только по предъявлению сапа с флажком, был ли бы флагшток-кун бояном?
                  Ответить
              • Мне кажется что я сделал единственную вещь которая запутана более чем Haskell
                Ответить
    • ехал лямбда через лямбда
      Ответить
    • function yap(){
          return yap;
      }
      // yap()()()()()()()()()();

      Не понимаю сложностей.
      Ответить

    Добавить комментарий