RosettaCodeData/Task/Partial-function-application/Lua/partial-function-application.lua

30 lines
562 B
Lua
Raw Normal View History

2015-02-20 00:35:01 -05:00
function map(f, ...)
local t = {}
for k, v in ipairs(...) do
t[#t+1] = f(v)
end
return t
end
function timestwo(n)
return n * 2
end
function squared(n)
return n ^ 2
end
2016-12-05 22:15:40 +01:00
function partial(f, arg)
2015-02-20 00:35:01 -05:00
return function(...)
2016-12-05 22:15:40 +01:00
return f(arg, ...)
2015-02-20 00:35:01 -05:00
end
end
timestwo_s = partial(map, timestwo)
squared_s = partial(map, squared)
print(table.concat(timestwo_s{0, 1, 2, 3}, ', '))
print(table.concat(squared_s{0, 1, 2, 3}, ', '))
print(table.concat(timestwo_s{2, 4, 6, 8}, ', '))
print(table.concat(squared_s{2, 4, 6, 8}, ', '))