Lua - передача функции с уже заполненными аргументами - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу передать функцию в качестве аргумента, функция для передачи принимает два аргумента. Я хочу, чтобы первый аргумент был заполнен, а второй - незаполнен. Вот пример:

function a(firstarg, secondarg)
    print ("this is the" .. firstarg .. "to the a function and the b function gave it ".. secondarg)
end

function b(givenfunction)
    givenfunction("the second argument.")

Требуемые вызовы функции:

b(a("first call"))
b(a("second call"))

Желаемый результат выполнения:

this is the first call to the a function and the b function gave it the second argument. 
this is the second call to the a function and the b function gave it the second argument.

Как я могу сделать что?

1 Ответ

3 голосов
/ 04 февраля 2020
function inner(firstarg, secondarg)
   print ("this is the" .. firstarg .. "to the a function and the b function gave it ".. secondarg)
end

function a(firstarg)
   return function (secondarg) 
      return inner(firstarg, secondarg)
   end
end

function b(givenfunction)
   givenfunction("the second argument.")
end

b(a("first call"))
b(a("second call"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...