Views
Moses
Moses is a utility library which provides a set of functions acting as shortcuts for common programming tasks,
and support for functional programming.
It aims to extend the built-in Lua table library, facilitate operations on
arrays, lists, collections, objects, through 85 weird, strange, bizarre, odd functions.
Moses was heavily inspired by Underscore.js.
Sample
local _ = require 'moses'
-- let's have fun!
print('Creating an array of integers')
local array = _.range(0,12,3)
_.each(array,print)
print('Shuffles the array with a random seed')
array = _.shuffle(array, os.time())
_.each(array, print)
print('Slicing values between 2 and 5 keys')
array = _.slice(array,2,5)
_.each(array,print)
print('Count values by parity')
local parityCount = _.countBy(array,function(i,v)
return v%2==0 and 'even' or 'odd'
end)
_.each(parityCount,print)
-- let's have fun!
print('Creating an array of integers')
local array = _.range(0,12,3)
_.each(array,print)
print('Shuffles the array with a random seed')
array = _.shuffle(array, os.time())
_.each(array, print)
print('Slicing values between 2 and 5 keys')
array = _.slice(array,2,5)
_.each(array,print)
print('Count values by parity')
local parityCount = _.countBy(array,function(i,v)
return v%2==0 and 'even' or 'odd'
end)
_.each(parityCount,print)
A possible output would be:
-- Creating an array of integers
-- 1 0
-- 2 3
-- 3 6
-- 4 9
-- 5 12
-- Shuffles the array with a random seed
-- 1 3
-- 2 0
-- 3 6
-- 4 12
-- 5 9
-- Slicing values between 2 and 5 keys
-- 1 0
-- 2 6
-- 3 12
-- 4 9
-- Count values by parity
-- odd 1
-- even 3
-- 1 0
-- 2 3
-- 3 6
-- 4 9
-- 5 12
-- Shuffles the array with a random seed
-- 1 3
-- 2 0
-- 3 6
-- 4 12
-- 5 9
-- Slicing values between 2 and 5 keys
-- 1 0
-- 2 6
-- 3 12
-- 4 9
-- Count values by parity
-- odd 1
-- even 3
Grab it on Github.