On 25 January 2016 at 05:58, <chuckiels2011@gmail.com> wrote:
Hello,
I'm new to the mailing list, so let me know if I'm inadvertently doing anything wrong. If I am, sorry about that :P
I was wondering if there is a posiblity of expanding the Lua standard library (mostly the string and table library). There are a few basic utility functions that I was hoping could be added to improve usability out of the box:
Strings:
- capitalize
This is a simple string.gsub call.
See also: string.upper
- split (this one I think is much needed. I'm constently rewriting myself split functions).
Lua prefers iterators over table generation. You should too!
string.gmatch is your friend here.
- strip (also write myself a lot of whitespace striping functions)
Many implementations are possible. See http://lua-users.org/wiki/StringTrim
In general, I prefer trim12.
- insert
I don't know what this would do??
Tables:
- any (the same as any? in Ruby)
Had to look this up: any?: Passes each element of the collection to
the given block. The method returns true if the block ever returns a
value other than false or nil.
So equvalent to: local no_false = true; for i, v in ipairs(tbl) do if
v == false or v == nil then no_false = false; break end end return
no_false
I'm not sure why you would ever need this??
- join (same as split)
See table.concat
- select (a filter function that can either accept a value or a function)
Lua prefers iterators over table generation.
Possibly see libraries such as luafun: https://github.com/rtsisyk/luafun
- shuffle (can be used to get a random value too, i.e `({1,2,3}):shuffle[1]`)
I'd prefer to implement this myself.
Also, thats terribly inefficient to shuffle a whole table just to get
the first one.
You can select a random element with: t[math.random(1, #t)]