• Интересная задачка для интервью, карринг и частичное применение функции

    Хожу по job interview. Где-то скучно, где-то весело. Где-то интересно. На одном из таких меня попросили написать функцию, которая умеет складывать два числа. Я написал:

      it ('should add two numbers', function () {
        var add = function (a,b) {
          return a + b;
        };
    
        assert.equal(add(2,3), 5);
      });
    


    А если, говорят, сигнатура функции должна быть типа такой: add(num1)(num2)? Не вопрос, говорю. Думая, что хитрый буржуин хочет проверить, знаю ли я про то, что можно возвращать функции из функций, пишу вот такое:

      it ('should be called like add(num1)(num2)', function () {
        var add = function (a) {
          return function (b) {
            return a + b;
          };
        };
    
        assert.equal(add(2)(3), 5);
      });
    


    Читать дальше →