Commit Graph

39 Commits

Author SHA1 Message Date
Max Cahill
e731a167d8 added tablex.shallow_equal and tablex.deep_equal, slow functions for content-based (in)equality of different tables 2021-11-23 11:40:31 +11:00
Max Cahill
72cb14b8ec Merge branch feature/tablex.pick_weighted_random
minor changes to error handling and docs
2021-11-23 10:58:56 +11:00
Jesse Viikari
a42f1190e0 Modified weighted random pick function
- Now accepts a table from which it will pick the random value from,
  instead of an index
- Changed function name to better reflect the way it now works
2021-11-19 10:03:40 +02:00
Max Cahill
31bfe92d37 added todo for tablex.weighted_random, removed returning the weight value as multi-return wasn't documented and could break in some circumstances 2021-11-18 10:35:26 +11:00
Jesse Viikari
7eb6bcc576 Add a weighted random pick for tablex 2021-11-17 20:20:04 +02:00
Max Cahill
63a1cf5438 Merge PR #39: add ripairs
minor: touched up whitespace/naming/comments
2021-11-11 13:47:24 +11:00
Max Cahill
8aa6107056 made tablex relative require consistent with other modules 2021-11-11 13:42:03 +11:00
Westerbly Snaydley
cf8e0ac81a add ripairs (reverse ipairs) 2021-11-09 23:45:01 -05:00
Max Cahill
27b548bb25 changed tablex.rotate loop bounds to be more defensive about fractional arguments being passed 2021-10-08 10:19:30 +11:00
Max Cahill
0a02d7a2da Merge feature/tablex.rotate
refactored to use loops instead of recursion for simplicity
2021-10-08 10:17:34 +11:00
flamendless
8a069c38d4 [tablex] Add rotate 2021-10-03 17:31:55 +08:00
Max Cahill
0691f2bd36 added tablex.random_index 2021-07-06 08:29:45 +10:00
Max Cahill
1de942daa8 Use luajit table.clear properly
Fixes #25
2021-06-29 14:46:40 +10:00
Max Cahill
9b95643e6e Added tablex.swap_and_pop 2021-06-09 19:49:04 +10:00
DUznanski
2846de2ea3
Fix shuffle to avoid bias
There's a subtle trick in shuffling: you should draw only from the part of the deck you have not seen!  Otherwise, some permutations are more common than others.
2021-05-20 12:33:52 -07:00
Max Cahill
a397d3d7f8 Merge remote-tracking branch 'origin/master' 2021-05-11 11:00:10 +10:00
Max Cahill
f343c1c0b7 [modified] optimised table.insert_sorted and made it _actually_ insert at the back of the range instead of at the first equal found position (not always the same) 2021-05-11 10:59:59 +10:00
Max Cahill
89ecd4258e Merge remote-tracking branch 'origin/master'
# Conflicts:
#	tablex.lua
2021-05-04 21:07:35 +10:00
Max Cahill
5cd33398a5 [added] tablex.swap 2021-05-04 20:52:47 +10:00
Max Cahill
bc7754ae0b [modified] minor refactor of how tablex.clear is or isn't initialised as needed 2021-05-04 10:38:31 +10:00
Max Cahill
826a2797c8 [modified] refactored insert_sorted to get PR #18 merged 2021-04-30 11:46:51 +10:00
Alvaro Frias Garay
5ed6d68f6c added binary search to insert_sorted
Added method tablex.is_sorted
2021-04-15 21:09:04 -03:00
Max Cahill
16c183ec31 [added] tablex.take_random which is like pick_random but removes the element 2021-03-09 20:07:41 +11:00
Max Cahill
24bcc78616 [added] tablex.append_inplace and tablex.append can both take variable numbers of tables 2021-03-05 12:07:28 +11:00
Max Cahill
5f124be2f0 [added] tablex.trim to trim a table to a certain length 2020-08-24 20:54:43 +10:00
Max Cahill
18d02434a0 [added] tablex.flatten as an alias for collapse 2020-07-02 17:04:47 +10:00
Max Cahill
284856d2c3 [modified] refactored init.lua extensively; used new assert module in stringx and tablex 2020-05-19 12:03:45 +10:00
Max Cahill
f183a1a485 [fixed] a few wrong assert strings 2020-05-12 14:14:08 +10:00
Max Cahill
b91f4f1fcc [added] tablex.collapse to reduce the dimensionality of a table; caveats on some edge case behaviour documented 2020-04-29 20:57:05 +10:00
Max Cahill
e75147ec77 [modified] moved tablex.stringify to stringx.pretty 2020-04-17 10:45:15 +10:00
Max Cahill
6bf6113dc2 [added] quoted strings in tablex.stringify; todo consider moving it to stringx actually, as it works for non-table types, maybe as stringx.pretty... 2020-04-17 10:34:39 +10:00
Max Cahill
d445c170e1 [added] tablex.insert_sorted (does what you'd expect, though no binary search yet) 2020-04-14 21:52:33 +10:00
Max Cahill
7922cd3912 [modified] table.push and table.unshift return the table for possible chaining 2020-04-14 13:53:10 +10:00
Max Cahill
b570ea7096 [added] tablex.front and tablex.key_of 2020-04-10 14:14:15 +10:00
Max Cahill
a87380f43c [modified] moved dedupe from functional to tablex 2020-04-08 21:18:52 +10:00
Max Cahill
f214be9f59 [added] tostring awareness for tablex.stringify 2020-04-08 21:10:24 +10:00
Max Cahill
c191a7b4f6 [fixed] issue loading tablex without love 2020-04-08 20:51:16 +10:00
Max Cahill
8d5da0a9ff [modified] moved append and append_inplace from functional to tablex 2020-04-08 20:50:51 +10:00
Max Cahill
6386aaf298 [modified] big refactor to localised modules and require("batteries"):export() for global usage; renamed files table to tablex and math to mathx to allow using the library in your module root if you really want to. 2020-04-07 13:49:10 +10:00