lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Thu, 16 Jan 2020 at 12:58, bil til <flyer31@googlemail.com> wrote:
>
> To make lua even a bit nicer for beginners, and to support nice lib
> documentation, I think it would be very nice if lua in some future
> optionally could support some function like Phyton help() in some future
> version.


untested!!:

--- help.lua
local h = {
   [assert] = [=[assert (v [, message])

Issues an error when the value of its argument v is false (i.e., nil
or false); otherwise, returns all its arguments. message is an error
message; when absent, it defaults to "assertion failed!"]=],

   [ipairs] = [=[ipairs (t)

Returns three values: an iterator function, the table t, and 0, so
that the construction

     for i,v in ipairs(t) do body end
will iterate over the pairs (1,t[1]), (2,t[2]), ···, up to the first
integer key absent from the table.]=],

....

  [coroutine.create] = [=[coroutine.create (f)

Creates a new coroutine, with body f. f must be a Lua function.
Returns this new coroutine, an object with type "thread".]=],

.....
}

return function (x)
  return h[x] or "unknown "..tostring(x)
end
---  end of help.lua


use:

> help = require "help"
> help(ipairs)
ipairs (t)

Returns three values: an iterator function, the table t, and 0, so
that the construction

     for i,v in ipairs(t) do body end
will iterate over the pairs (1,t[1]), (2,t[2]), ···, up to the first
integer key absent from the table.


something like this? version detection left as an exercise.  (now that
I think of it, maybe Penlight already has something similar?)


-- 
Javier