LINUX.ORG.RU

История изменений

Исправление no-dashi, (текущая версия) :

Абстрактный пример. Функция как объект с оператором вызова.

class Function {
    Context contextVars;
    Function(args,...) { context.assign(args); }
    ResultType <call>(a,b,c) {
         return context.arg1*a + context.arg2*b+context.arg3*c;
    }
}
Function f = new Function(a1,a2,a3);
f(1,2,3);
f(2,3,4);
Что такое f - это функция или объект?

Исходная версия no-dashi, :

Абстрактный пример. Функция как объект с оператором вызова.

class Function {
    Context contextVars;
    Function(args,...) { context.assign(args); }
    ResultType <call>(a,b,c) {
         return context.arg1*a + context.arg2*b+context.arg3*c;
    }
}
Function f = new Function(a1,a2,a3);
f(1,2,3);
f(2,3,4);
f = это функция или объект?