Модуль fun
Luafun, также известная как библиотека для функционального
программирования в Lua, пользуется преимуществами LuaJIT, чтобы помочь
пользователям создавать сложные функции. Модуль включает в себя
"последовательные процессоры", такие как map, filter, reduce,
zip – они берут написанную пользователем функцию в качестве
аргумента и применяют ее к каждому элементу в последовательности, что
может работать быстрее или более удобно, чем написанный пользователем
цикл. Модуль включает в себя "генераторы", такие как range,
tabulate и rands – они возвращают ограниченный или неограниченный
ряд значений. Модуль включает в себя "преобразователи", "фильтры",
"компоновщики" ... или, коротко говоря, все важные функции из таких
языков, как Standard ML, Haskell или Erlang.
Полная документация доступна по ссылке в разделе luafun на
GitHub. Однако первую главу можно
пропустить, так как установка уже выполнена — модуль входит в состав
Tarantool. Достаточно выполнить обычный вызов require. После этого все
операции, описанные в руководстве по Lua fun, будут работать при
условии, что перед ними указывается имя, возвращаемое вызовом require.
Например:
tarantool> fun = require('fun')---...tarantool> for _k, a in fun.range(3) do> print(a)> end123---...