История изменений
Исправление MOPKOBKA, (текущая версия) :
Второй пример некорректен, это не замыкание, нельзя повторить вот такое:
function print_sum(x)
function make(acc)
return function(x)
print(("acc(%d) + %d"):format(acc, x))
return make(acc+x)
end
end
return make(x)
end
x = print_sum(10)(20)(30)(40)
x(100) <--
x(100) <--
acc(10) + 20
acc(30) + 30
acc(60) + 40
acc(100) + 100 <---
acc(100) + 100 <---
Ну и по стандарту конечно нельзя приводить указатель на данные к указателю на функцию.
Исходная версия MOPKOBKA, :
Второй пример некорректен, это не замыкание, нельзя повторить вот такое:
function print_sum(x)
function make(acc)
return function(x)
print(("acc(%d) + %d"):format(acc, x))
return make(acc+x)
end
end
return make(x)
end
x = print_sum(10)(20)(30)(40)
x(100) <--
x(100) <--
acc(10) + 20
acc(30) + 30
acc(60) + 40
acc(100) + 100 <---
acc(100) + 100 <---