diff options
| author | chai <chaifix@163.com> | 2021-10-26 11:32:46 +0800 | 
|---|---|---|
| committer | chai <chaifix@163.com> | 2021-10-26 11:32:46 +0800 | 
| commit | 0549b1e5a8a3132005e275d6026db8003cb067d2 (patch) | |
| tree | f0d7751ec32ecf5c4d23997fa0ffd3450a5a755a /Resources/DefaultContent/Libraries/luafun/doc/basic.rst | |
| parent | 32345800737b668011a87328cd3dcce59ec2934c (diff) | |
*rename folder
Diffstat (limited to 'Resources/DefaultContent/Libraries/luafun/doc/basic.rst')
| -rw-r--r-- | Resources/DefaultContent/Libraries/luafun/doc/basic.rst | 141 | 
1 files changed, 0 insertions, 141 deletions
diff --git a/Resources/DefaultContent/Libraries/luafun/doc/basic.rst b/Resources/DefaultContent/Libraries/luafun/doc/basic.rst deleted file mode 100644 index 346dd78..0000000 --- a/Resources/DefaultContent/Libraries/luafun/doc/basic.rst +++ /dev/null @@ -1,141 +0,0 @@ -Basic Functions -=============== - -.. module:: fun - -The section contains functions to create iterators from Lua objects. - -.. function:: iter(array) -              iter(map) -              iter(string) -              iter(gen, param, state) - -   :returns: ``gen, param, state`` -- :ref:`iterator triplet <iterator_triplet>` - -   Make ``gen, param, state`` iterator from the iterable object. -   The function is a generalized version of :func:`pairs` and :func:`ipairs`. - -   The function distinguish between arrays and maps using ``#arg == 0`` -   check to detect maps. For arrays ``ipairs`` is used. For maps a modified -   version of ``pairs`` is used that also returns keys. Userdata objects -   are handled in the same way as tables. - -   If ``LUAJIT_ENABLE_LUA52COMPAT`` [#luajit_lua52compat]_ mode is enabled and -   argument has metamethods ``__pairs`` (for maps) or ``__ipairs`` for (arrays), -   call it with the table or userdata as argument and return the first three -   results from the call [#lua52_ipairs]_. - -   All library iterator are suitable to use with Lua's ``for .. in`` loop. - -   .. code-block:: lua - -    > for _it, a in iter({1, 2, 3}) do print(a) end -    1 -    2 -    3 - -    > for _it, k, v in iter({ a = 1, b = 2, c = 3}) do print(k, v) end -    b 2 -    a 1 -    c 3 - -    > for _it, a in iter("abcde") do print(a) end -    a -    b -    c -    d -    e - -   The first cycle variable *_it* is needed to store an internal state of -   the iterator. The value must be always ignored in loops: - -   .. code-block:: lua - -    for _it, a, b in iter({ a = 1, b = 2, c = 3}) do print(a, b) end -    -- _it is some internal iterator state - always ignore it -    -- a, b are values return from the iterator - -   Simple iterators like ``iter({1, 2, 3})`` have simple states, whereas -   other iterators like :func:`zip` or :func:`chain` have complicated -   internal states which values senseless for the end user. - -   Check out :doc:`under_the_hood` section for more details. - -   There is also the possibility to supply custom iterators to the -   function: - -   .. code-block:: lua - -    > local function mypairs_gen(max, state) -        if (state >= max) then -                return nil -        end -        return state + 1, state + 1 -    end - -    > local function mypairs(max) -        return mypairs_gen, max, 0 -    end - -    > for _it, a in iter(mypairs(10)) do print(a) end -    1 -    2 -    3 -    4 -    5 -    6 -    7 -    8 -    9 -    10 - -   Iterators can return multiple values. - -   Check out :doc:`under_the_hood` section for more details. - -   .. [#luajit_lua52compat] http://luajit.org/extensions.html -   .. [#lua52_ipairs] http://www.lua.org/manual/5.2/manual.html#pdf-ipairs - -.. function:: each(fun, gen, param, state) -              iterator:each(fun) - -   :returns: none - -   Execute the *fun* for each iteration value. The function is equivalent to -   the code below: - -   .. code-block:: lua - -    for _it, ... in iter(gen, param, state) do -        fun(...) -    end - -   Examples: - -   .. code-block:: lua - -    > each(print, { a = 1, b = 2, c = 3}) -    b 2 -    a 1 -    c 3 - -    > each(print, {1, 2, 3}) -    1 -    2 -    3 - -   The function is used for its side effects. Implementation directly applies -   *fun* to all iteration values without returning a new iterator, in contrast -   to functions like :func:`map`. - -   .. seealso:: :func:`map`, :func:`reduce` - -.. function:: for_each(fun, gen, param, state) -              iterator:for_each(fun) - -    An alias for :func:`each`. - -.. function:: foreach(fun, gen, param, state) -              iterator:foreach(fun) - -    An alias for :func:`each`.  | 
