comparison website/src/manual.html.luan @ 642:c4216a583de4 0.17

add links to functions in manual
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 23 Mar 2016 15:07:06 -0600
parents 35dde32c02ab
children 1e4b0bc0202d
comparison
equal deleted inserted replaced
641:252041bc41b5 642:c4216a583de4
1834 1834
1835 <p> 1835 <p>
1836 The basic library provides basic functions to Luan that don't depend on other libaries. 1836 The basic library provides basic functions to Luan that don't depend on other libaries.
1837 1837
1838 1838
1839 <h4 heading><a name="Luan.assert"><code>Luan.assert (v [, message])</code></a></h4> 1839 <h4 heading><a name="Luan.assert" href="#Luan.assert"><code>Luan.assert (v [, message])</code></a></h4>
1840 1840
1841 <p> 1841 <p>
1842 Could be defined as: 1842 Could be defined as:
1843 1843
1844 <pre> 1844 <pre>
1846 return v or <a href="#Luan.error">Luan.error</a>(message or "assertion failed!") 1846 return v or <a href="#Luan.error">Luan.error</a>(message or "assertion failed!")
1847 end 1847 end
1848 </pre> 1848 </pre>
1849 1849
1850 1850
1851 <h4 heading><a name="Luan.assert_binary"><code>Luan.assert_binary (v)</code></a></h4> 1851 <h4 heading><a name="Luan.assert_binary" href="#Luan.assert_binary"><code>Luan.assert_binary (v)</code></a></h4>
1852 1852
1853 <p> 1853 <p>
1854 Could be defined as: 1854 Could be defined as:
1855 1855
1856 <pre> 1856 <pre>
1859 return v_type == "binary" and v or <a href="#Luan.error">Luan.error</a>("bad argument #1 (binary expected, got "..v_type..")") 1859 return v_type == "binary" and v or <a href="#Luan.error">Luan.error</a>("bad argument #1 (binary expected, got "..v_type..")")
1860 end 1860 end
1861 </pre> 1861 </pre>
1862 1862
1863 1863
1864 <h4 heading><a name="Luan.assert_boolean"><code>Luan.assert_boolean (v)</code></a></h4> 1864 <h4 heading><a name="Luan.assert_boolean" href="#Luan.assert_boolean"><code>Luan.assert_boolean (v)</code></a></h4>
1865 1865
1866 <p> 1866 <p>
1867 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>boolean</code>. 1867 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>boolean</code>.
1868 1868
1869 1869
1870 <h4 heading><a name="Luan.assert_function"><code>Luan.assert_function (v)</code></a></h4> 1870 <h4 heading><a name="Luan.assert_function" href="#Luan.assert_function"><code>Luan.assert_function (v)</code></a></h4>
1871 1871
1872 <p> 1872 <p>
1873 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>function</code>. 1873 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>function</code>.
1874 1874
1875 1875
1876 <h4 heading><a name="Luan.assert_integer"><code>Luan.assert_integer (v)</code></a></h4> 1876 <h4 heading><a name="Luan.assert_integer" href="#Luan.assert_integer"><code>Luan.assert_integer (v)</code></a></h4>
1877 1877
1878 <p> 1878 <p>
1879 Asserts that <code>v</code> can be converted to Java type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</a> and returns an Integer. 1879 Asserts that <code>v</code> can be converted to Java type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</a> and returns an Integer.
1880 1880
1881 1881
1882 <h4 heading><a name="Luan.assert_long"><code>Luan.assert_long (v)</code></a></h4> 1882 <h4 heading><a name="Luan.assert_long" href="#Luan.assert_long"><code>Luan.assert_long (v)</code></a></h4>
1883 1883
1884 <p> 1884 <p>
1885 Asserts that <code>v</code> can be converted to Java type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html">Long</a> and returns a Long. 1885 Asserts that <code>v</code> can be converted to Java type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html">Long</a> and returns a Long.
1886 1886
1887 1887
1888 <h4 heading><a name="Luan.assert_number"><code>Luan.assert_number (v)</code></a></h4> 1888 <h4 heading><a name="Luan.assert_number" href="#Luan.assert_number"><code>Luan.assert_number (v)</code></a></h4>
1889 1889
1890 <p> 1890 <p>
1891 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>number</code>. 1891 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>number</code>.
1892 1892
1893 1893
1894 <h4 heading><a name="Luan.assert_string"><code>Luan.assert_string (v)</code></a></h4> 1894 <h4 heading><a name="Luan.assert_string" href="#Luan.assert_string"><code>Luan.assert_string (v)</code></a></h4>
1895 1895
1896 <p> 1896 <p>
1897 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>string</code>. 1897 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>string</code>.
1898 1898
1899 1899
1900 <h4 heading><a name="Luan.assert_table"><code>Luan.assert_table (v)</code></a></h4> 1900 <h4 heading><a name="Luan.assert_table" href="#Luan.assert_table"><code>Luan.assert_table (v)</code></a></h4>
1901 1901
1902 <p> 1902 <p>
1903 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>table</code>. 1903 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>table</code>.
1904 1904
1905 1905
1906 <h4 heading><a name="Luan.do_file"><code>Luan.do_file ([uri])</code></a></h4> 1906 <h4 heading><a name="Luan.do_file" href="#Luan.do_file"><code>Luan.do_file ([uri])</code></a></h4>
1907 1907
1908 <p> 1908 <p>
1909 Could be defined as: 1909 Could be defined as:
1910 1910
1911 <pre> 1911 <pre>
1914 end 1914 end
1915 </pre> 1915 </pre>
1916 1916
1917 1917
1918 1918
1919 <h4 heading><a name="Luan.error"><code>Luan.error (message)</code></a></h4> 1919 <h4 heading><a name="Luan.error" href="#Luan.error"><code>Luan.error (message)</code></a></h4>
1920 1920
1921 <p> 1921 <p>
1922 Throws an error containing the message. 1922 Throws an error containing the message.
1923 1923
1924 <p> 1924 <p>
1930 end 1930 end
1931 </pre> 1931 </pre>
1932 1932
1933 1933
1934 1934
1935 <h4 heading><a name="Luan.get_metatable"><code>Luan.get_metatable (table)</code></a></h4> 1935 <h4 heading><a name="Luan.get_metatable" href="#Luan.get_metatable"><code>Luan.get_metatable (table)</code></a></h4>
1936 1936
1937 <p> 1937 <p>
1938 If <code>table</code> does not have a metatable, returns <b>nil</b>. 1938 If <code>table</code> does not have a metatable, returns <b>nil</b>.
1939 Otherwise, 1939 Otherwise,
1940 if the table's metatable has a <code>"__metatable"</code> field, 1940 if the table's metatable has a <code>"__metatable"</code> field,
1941 returns the associated value. 1941 returns the associated value.
1942 Otherwise, returns the metatable of the given table. 1942 Otherwise, returns the metatable of the given table.
1943 1943
1944 1944
1945 <h4 heading><a name="Luan.ipairs"><code>Luan.ipairs (t)</code></a></h4> 1945 <h4 heading><a name="Luan.ipairs" href="#Luan.ipairs"><code>Luan.ipairs (t)</code></a></h4>
1946 1946
1947 <p> 1947 <p>
1948 Returns an iterator function 1948 Returns an iterator function
1949 so that the construction 1949 so that the construction
1950 1950
1972 end 1972 end
1973 </pre> 1973 </pre>
1974 1974
1975 1975
1976 1976
1977 <h4 heading><a name="Luan.load"><code>Luan.load (text, [source_name [env, [, allow_expression]]])</code></a></h4> 1977 <h4 heading><a name="Luan.load" href="#Luan.load"><code>Luan.load (text, [source_name [env, [, allow_expression]]])</code></a></h4>
1978 1978
1979 <p> 1979 <p>
1980 Loads a chunk. 1980 Loads a chunk.
1981 1981
1982 <p> 1982 <p>
1993 1993
1994 <p> 1994 <p>
1995 If the <code>allow_expression</code> parameter is <code>true</code> then the entire text can be nothing more than an expression in which case the chunk returns the value of this expression. 1995 If the <code>allow_expression</code> parameter is <code>true</code> then the entire text can be nothing more than an expression in which case the chunk returns the value of this expression.
1996 1996
1997 1997
1998 <h4 heading><a name="Luan.load_file"><code>Luan.load_file (file_uri [, add_extension])</code></a></h4> 1998 <h4 heading><a name="Luan.load_file" href="#Luan.load_file"><code>Luan.load_file (file_uri [, add_extension])</code></a></h4>
1999 1999
2000 <p> 2000 <p>
2001 Similar to <a href="#Luan.load"><code>load</code></a>, 2001 Similar to <a href="#Luan.load"><code>load</code></a>,
2002 but gets the chunk from file <code>file_uri</code> 2002 but gets the chunk from file <code>file_uri</code>
2003 or from the standard input, 2003 or from the standard input,
2014 return <a href="#Luan.load">Luan.load</a>( f.read_text(), file_uri ) 2014 return <a href="#Luan.load">Luan.load</a>( f.read_text(), file_uri )
2015 end 2015 end
2016 </pre> 2016 </pre>
2017 2017
2018 2018
2019 <h4 heading><a name="Luan.new_error"><code>Luan.new_error (message)</code></a></h4> 2019 <h4 heading><a name="Luan.new_error" href="#Luan.new_error"><code>Luan.new_error (message)</code></a></h4>
2020 2020
2021 <p> 2021 <p>
2022 Creates a new error table containing the message assigned to "<code>message</code>". The error table also contains a <code>throw</code> function which throws the error. The table also contains a list of stack trace elements where each stack trace element is a table containing "<code>source</code>", "<code>line</code>", and possible "<code>call_to</code>". The table also has a metatable containing "<code>__to_string</code>" to render the error. 2022 Creates a new error table containing the message assigned to "<code>message</code>". The error table also contains a <code>throw</code> function which throws the error. The table also contains a list of stack trace elements where each stack trace element is a table containing "<code>source</code>", "<code>line</code>", and possible "<code>call_to</code>". The table also has a metatable containing "<code>__to_string</code>" to render the error.
2023 2023
2024 <p> 2024 <p>
2027 <pre> 2027 <pre>
2028 Io.print( Luan.new_error "stack" ) 2028 Io.print( Luan.new_error "stack" )
2029 </pre> 2029 </pre>
2030 2030
2031 2031
2032 <h4 heading><a name="Luan.pairs"><code>Luan.pairs (t)</code></a></h4> 2032 <h4 heading><a name="Luan.pairs" href="#Luan.pairs"><code>Luan.pairs (t)</code></a></h4>
2033 2033
2034 <p> 2034 <p>
2035 If <code>t</code> has a metamethod <code>__pairs</code>, 2035 If <code>t</code> has a metamethod <code>__pairs</code>,
2036 calls it with <code>t</code> as argument and returns the 2036 calls it with <code>t</code> as argument and returns the
2037 result from the call. 2037 result from the call.
2049 <p> 2049 <p>
2050 will iterate over all key&ndash;value pairs of table <code>t</code>. 2050 will iterate over all key&ndash;value pairs of table <code>t</code>.
2051 2051
2052 2052
2053 2053
2054 <h4 heading><a name="Luan.pcall"><code>Luan.pcall (f [, arg1, &middot;&middot;&middot;])</code></a></h4> 2054 <h4 heading><a name="Luan.pcall" href="#Luan.pcall"><code>Luan.pcall (f [, arg1, &middot;&middot;&middot;])</code></a></h4>
2055 2055
2056 <p> 2056 <p>
2057 Calls function <code>f</code> with 2057 Calls function <code>f</code> with
2058 the given arguments in <em>protected mode</em>. 2058 the given arguments in <em>protected mode</em>.
2059 This means that any error inside&nbsp;<code>f</code> is not propagated; 2059 This means that any error inside&nbsp;<code>f</code> is not propagated;
2079 For complete control over the output, 2079 For complete control over the output,
2080 use <a href="#pdf-string.format"><code>string.format</code></a> and <a href="#pdf-io.write"><code>io.write</code></a>. 2080 use <a href="#pdf-string.format"><code>string.format</code></a> and <a href="#pdf-io.write"><code>io.write</code></a>.
2081 2081
2082 2082
2083 2083
2084 <h4 heading><a name="Luan.range"><code>Luan.range (start, stop [, step])</code></a></h4> 2084 <h4 heading><a name="Luan.range" href="#Luan.range"><code>Luan.range (start, stop [, step])</code></a></h4>
2085 2085
2086 <p> 2086 <p>
2087 Based on <a href="https://docs.python.org/2/library/functions.html#range">the Python range() function</a>, this lets one iterate through a sequence of numbers. 2087 Based on <a href="https://docs.python.org/2/library/functions.html#range">the Python range() function</a>, this lets one iterate through a sequence of numbers.
2088 2088
2089 <p> 2089 <p>
2116 end 2116 end
2117 </pre> 2117 </pre>
2118 2118
2119 2119
2120 2120
2121 <h4 heading><a name="Luan.raw_equal"><code>Luan.raw_equal (v1, v2)</code></a></h4> 2121 <h4 heading><a name="Luan.raw_equal" href="#Luan.raw_equal"><code>Luan.raw_equal (v1, v2)</code></a></h4>
2122 2122
2123 <p> 2123 <p>
2124 Checks whether <code>v1</code> is equal to <code>v2</code>, 2124 Checks whether <code>v1</code> is equal to <code>v2</code>,
2125 without invoking any metamethod. 2125 without invoking any metamethod.
2126 Returns a boolean. 2126 Returns a boolean.
2127 2127
2128 2128
2129 2129
2130 <h4 heading><a name="Luan.raw_get"><code>Luan.raw_get (table, index)</code></a></h4> 2130 <h4 heading><a name="Luan.raw_get" href="#Luan.raw_get"><code>Luan.raw_get (table, index)</code></a></h4>
2131 2131
2132 <p> 2132 <p>
2133 Gets the real value of <code>table[index]</code>, 2133 Gets the real value of <code>table[index]</code>,
2134 without invoking any metamethod. 2134 without invoking any metamethod.
2135 <code>table</code> must be a table; 2135 <code>table</code> must be a table;
2136 <code>index</code> may be any value. 2136 <code>index</code> may be any value.
2137 2137
2138 2138
2139 2139
2140 <h4 heading><a name="Luan.raw_len"><code>Luan.raw_len (v)</code></a></h4> 2140 <h4 heading><a name="Luan.raw_len" href="#Luan.raw_len"><code>Luan.raw_len (v)</code></a></h4>
2141 2141
2142 <p> 2142 <p>
2143 Returns the length of the object <code>v</code>, 2143 Returns the length of the object <code>v</code>,
2144 which must be a table or a string, 2144 which must be a table or a string,
2145 without invoking any metamethod. 2145 without invoking any metamethod.
2146 Returns an integer. 2146 Returns an integer.
2147 2147
2148 2148
2149 2149
2150 <h4 heading><a name="Luan.raw_set"><code>Luan.raw_set (table, index, value)</code></a></h4> 2150 <h4 heading><a name="Luan.raw_set" href="#Luan.raw_set"><code>Luan.raw_set (table, index, value)</code></a></h4>
2151 2151
2152 <p> 2152 <p>
2153 Sets the real value of <code>table[index]</code> to <code>value</code>, 2153 Sets the real value of <code>table[index]</code> to <code>value</code>,
2154 without invoking any metamethod. 2154 without invoking any metamethod.
2155 <code>table</code> must be a table, 2155 <code>table</code> must be a table,
2156 <code>index</code> any value different from <b>nil</b>, 2156 <code>index</code> any value different from <b>nil</b>,
2157 and <code>value</code> any Lua value. 2157 and <code>value</code> any Lua value.
2158 2158
2159 2159
2160 <h4 heading><a name="Luan.set_metatable"><code>Luan.set_metatable (table, metatable)</code></a></h4> 2160 <h4 heading><a name="Luan.set_metatable" href="#Luan.set_metatable"><code>Luan.set_metatable (table, metatable)</code></a></h4>
2161 2161
2162 <p> 2162 <p>
2163 Sets the metatable for the given table. 2163 Sets the metatable for the given table.
2164 If <code>metatable</code> is <b>nil</b>, 2164 If <code>metatable</code> is <b>nil</b>,
2165 removes the metatable of the given table. 2165 removes the metatable of the given table.
2166 If the original metatable has a <code>"__metatable"</code> field, 2166 If the original metatable has a <code>"__metatable"</code> field,
2167 raises an error. 2167 raises an error.
2168 2168
2169 2169
2170 2170
2171 <h4 heading><a name="Luan.to_string"><code>Luan.to_string (v)</code></a></h4> 2171 <h4 heading><a name="Luan.to_string" href="#Luan.to_string"><code>Luan.to_string (v)</code></a></h4>
2172 2172
2173 <p> 2173 <p>
2174 Receives a value of any type and 2174 Receives a value of any type and
2175 converts it to a string in a human-readable format. 2175 converts it to a string in a human-readable format.
2176 2176
2180 with <code>v</code> as argument, 2180 with <code>v</code> as argument,
2181 and uses the result of the call as its result. 2181 and uses the result of the call as its result.
2182 2182
2183 2183
2184 2184
2185 <h4 heading><a name="Luan.try"><code>Luan.try (t, &middot;&middot;&middot;)</code></a></h4> 2185 <h4 heading><a name="Luan.try" href="#Luan.try"><code>Luan.try (t, &middot;&middot;&middot;)</code></a></h4>
2186 2186
2187 <p> 2187 <p>
2188 Implements try-catch as found in other languages where each block is in table <code>t</code>. <code>t[1]</code> is the "try" block. The <code>t.catch</code> and <code>t.finally</code> blocks are optional. Any extra arguments are passed to the "try" function. Returns the result of the "try" block or the "catch" block. 2188 Implements try-catch as found in other languages where each block is in table <code>t</code>. <code>t[1]</code> is the "try" block. The <code>t.catch</code> and <code>t.finally</code> blocks are optional. Any extra arguments are passed to the "try" function. Returns the result of the "try" block or the "catch" block.
2189 2189
2190 <p> 2190 <p>
2222 return Table.unpack(r) 2222 return Table.unpack(r)
2223 end 2223 end
2224 </pre> 2224 </pre>
2225 2225
2226 2226
2227 <h4 heading><a name="Luan.type"><code>Luan.type (v)</code></a></h4> 2227 <h4 heading><a name="Luan.type" href="#Luan.type"><code>Luan.type (v)</code></a></h4>
2228 2228
2229 <p> 2229 <p>
2230 Returns the type of its only argument, coded as a string. 2230 Returns the type of its only argument, coded as a string.
2231 The possible results of this function are 2231 The possible results of this function are
2232 "<code>nil</code>" (a string, not the value <b>nil</b>), 2232 "<code>nil</code>" (a string, not the value <b>nil</b>),
2237 "<code>table</code>", 2237 "<code>table</code>",
2238 "<code>function</code>", 2238 "<code>function</code>",
2239 and "<code>java</code>". 2239 and "<code>java</code>".
2240 2240
2241 2241
2242 <h4 heading><a name="Luan.values"><code>Luan.values (&middot;&middot;&middot;)</code></a></h4> 2242 <h4 heading><a name="Luan.values" href="#Luan.values"><code>Luan.values (&middot;&middot;&middot;)</code></a></h4>
2243 2243
2244 <p> 2244 <p>
2245 Returns a function so that the construction 2245 Returns a function so that the construction
2246 2246
2247 <pre> 2247 <pre>
2251 <p> 2251 <p>
2252 will iterate over all values of <code>&middot;&middot;&middot;</code>. 2252 will iterate over all values of <code>&middot;&middot;&middot;</code>.
2253 2253
2254 2254
2255 2255
2256 <h4 heading><a name="Luan.VERSION"><code>Luan.VERSION</code></a></h4> 2256 <h4 heading><a name="Luan.VERSION" href="#Luan.VERSION"><code>Luan.VERSION</code></a></h4>
2257 2257
2258 <p> 2258 <p>
2259 A global variable (not a function) that 2259 A global variable (not a function) that
2260 holds a string containing the current interpreter version. 2260 holds a string containing the current interpreter version.
2261 The current value of this variable is "<code><%=Luan.VERSION%></code>". 2261 The current value of this variable is "<code><%=Luan.VERSION%></code>".
2277 <p> 2277 <p>
2278 The package library provides basic 2278 The package library provides basic
2279 facilities for loading modules in Luan. 2279 facilities for loading modules in Luan.
2280 2280
2281 2281
2282 <h4 heading><a name="Package.load"><code>Package.load (mod_uri)</code></a></h4> 2282 <h4 heading><a name="Package.load" href="#Package.load"><code>Package.load (mod_uri)</code></a></h4>
2283 2283
2284 <p> 2284 <p>
2285 Loads the given module. 2285 Loads the given module.
2286 The function starts by looking into the <a href="#Package.loaded"><code>Package.loaded</code></a> table 2286 The function starts by looking into the <a href="#Package.loaded"><code>Package.loaded</code></a> table
2287 to determine whether <code>mod_uri</code> is already loaded. 2287 to determine whether <code>mod_uri</code> is already loaded.
2299 If a new value for the module successful loaded, then it is stored in <code>Package.loaded[mod_uri]</code>. The value is returned. 2299 If a new value for the module successful loaded, then it is stored in <code>Package.loaded[mod_uri]</code>. The value is returned.
2300 2300
2301 2301
2302 2302
2303 2303
2304 <h4 heading><a name="Package.loaded"><code>Package.loaded</code></a></h4> 2304 <h4 heading><a name="Package.loaded" href="#Package.loaded"><code>Package.loaded</code></a></h4>
2305 2305
2306 2306
2307 <p> 2307 <p>
2308 A table used by <a href="#Package.load"><code>Package.load</code></a> to control which 2308 A table used by <a href="#Package.load"><code>Package.load</code></a> to control which
2309 modules are already loaded. 2309 modules are already loaded.
2340 from the end of the string. 2340 from the end of the string.
2341 Thus, the last character is at position -1, and so on. 2341 Thus, the last character is at position -1, and so on.
2342 2342
2343 2343
2344 2344
2345 <h4 heading><a name="String.char"><code>String.char (&middot;&middot;&middot;)</code></a></h4> 2345 <h4 heading><a name="String.char" href="#String.char"><code>String.char (&middot;&middot;&middot;)</code></a></h4>
2346 2346
2347 <p> 2347 <p>
2348 Receives zero or more integers. 2348 Receives zero or more integers.
2349 Returns a string with length equal to the number of arguments, 2349 Returns a string with length equal to the number of arguments,
2350 in which each character has the internal numerical code equal 2350 in which each character has the internal numerical code equal
2351 to its corresponding argument. 2351 to its corresponding argument.
2352 2352
2353 2353
2354 <h4 heading><a name="String.concat"><code>String.concat (&middot;&middot;&middot;)</code></a></h4> 2354 <h4 heading><a name="String.concat" href="#String.concat"><code>String.concat (&middot;&middot;&middot;)</code></a></h4>
2355 2355
2356 <p> 2356 <p>
2357 Concatenates the <a href="#Luan.to_string"><code>to_string</code></a> value of all arguments. 2357 Concatenates the <a href="#Luan.to_string"><code>to_string</code></a> value of all arguments.
2358 2358
2359 2359
2360 2360
2361 <h4 heading><a name="String.encode"><code>String.encode (s)</code></a></h4> 2361 <h4 heading><a name="String.encode" href="#String.encode"><code>String.encode (s)</code></a></h4>
2362 2362
2363 <p> 2363 <p>
2364 Encodes argument <code>s</code> into a string that can be placed in quotes so as to return the original value of the string. 2364 Encodes argument <code>s</code> into a string that can be placed in quotes so as to return the original value of the string.
2365 2365
2366 2366
2367 2367
2368 2368
2369 <h4 heading><a name="String.find"><code>String.find (s, pattern [, init [, plain]])</code></a></h4> 2369 <h4 heading><a name="String.find" href="#String.find"><code>String.find (s, pattern [, init [, plain]])</code></a></h4>
2370 2370
2371 <p> 2371 <p>
2372 Looks for the first match of 2372 Looks for the first match of
2373 <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) in the string <code>s</code>. 2373 <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) in the string <code>s</code>.
2374 If it finds a match, then <code>find</code> returns the indices of&nbsp;<code>s</code> 2374 If it finds a match, then <code>find</code> returns the indices of&nbsp;<code>s</code>
2390 after the two indices. 2390 after the two indices.
2391 2391
2392 2392
2393 2393
2394 2394
2395 <h4 heading><a name="String.format"><code>String.format (formatstring, &middot;&middot;&middot;)</code></a></h4> 2395 <h4 heading><a name="String.format" href="#String.format"><code>String.format (formatstring, &middot;&middot;&middot;)</code></a></h4>
2396 2396
2397 2397
2398 <p> 2398 <p>
2399 Returns a formatted version of its variable number of arguments 2399 Returns a formatted version of its variable number of arguments
2400 following the description given in its first argument (which must be a string). 2400 following the description given in its first argument (which must be a string).
2403 <p> 2403 <p>
2404 Note that Java's <code>String.format</code> is too stupid to convert between ints and floats, so you must provide the right kind of number. 2404 Note that Java's <code>String.format</code> is too stupid to convert between ints and floats, so you must provide the right kind of number.
2405 2405
2406 2406
2407 2407
2408 <h4 heading><a name="String.gmatch"><code>String.gmatch (s, pattern)</code></a></h4> 2408 <h4 heading><a name="String.gmatch" href="#String.gmatch"><code>String.gmatch (s, pattern)</code></a></h4>
2409 2409
2410 <p> 2410 <p>
2411 Returns an iterator function that, 2411 Returns an iterator function that,
2412 each time it is called, 2412 each time it is called,
2413 returns the next captures from <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) 2413 returns the next captures from <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>)
2444 For this function, a caret '<code>^</code>' at the start of a pattern does not 2444 For this function, a caret '<code>^</code>' at the start of a pattern does not
2445 work as an anchor, as this would prevent the iteration. 2445 work as an anchor, as this would prevent the iteration.
2446 2446
2447 2447
2448 2448
2449 <h4 heading><a name="String.gsub"><code>String.gsub (s, pattern, repl [, n])</code></a></h4> 2449 <h4 heading><a name="String.gsub" href="#String.gsub"><code>String.gsub (s, pattern, repl [, n])</code></a></h4>
2450 2450
2451 <p> 2451 <p>
2452 Returns a copy of <code>s</code> 2452 Returns a copy of <code>s</code>
2453 in which all (or the first <code>n</code>, if given) 2453 in which all (or the first <code>n</code>, if given)
2454 occurrences of the <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) have been 2454 occurrences of the <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) have been
2517 --&gt; x="lua-5.3.tar.gz" 2517 --&gt; x="lua-5.3.tar.gz"
2518 </pre> 2518 </pre>
2519 2519
2520 2520
2521 2521
2522 <h4 heading><a name="String.literal"><code>String.literal (s)</code></a></h4> 2522 <h4 heading><a name="String.literal" href="#String.literal"><code>String.literal (s)</code></a></h4>
2523 <p> 2523 <p>
2524 Returns a string which matches the literal string <code>s</code> in a regular expression. This function is simply the Java method <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#quote(java.lang.String)"><code>Pattern.quote</code></a>. 2524 Returns a string which matches the literal string <code>s</code> in a regular expression. This function is simply the Java method <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#quote(java.lang.String)"><code>Pattern.quote</code></a>.
2525 2525
2526 2526
2527 <h4 heading><a name="String.lower"><code>String.lower (s)</code></a></h4> 2527 <h4 heading><a name="String.lower" href="#String.lower"><code>String.lower (s)</code></a></h4>
2528 <p> 2528 <p>
2529 Receives a string and returns a copy of this string with all 2529 Receives a string and returns a copy of this string with all
2530 uppercase letters changed to lowercase. 2530 uppercase letters changed to lowercase.
2531 All other characters are left unchanged. 2531 All other characters are left unchanged.
2532 2532
2533 2533
2534 2534
2535 2535
2536 <h4 heading><a name="String.match"><code>String.match (s, pattern [, init])</code></a></h4> 2536 <h4 heading><a name="String.match" href="#String.match"><code>String.match (s, pattern [, init])</code></a></h4>
2537 2537
2538 <p> 2538 <p>
2539 Looks for the first <em>match</em> of 2539 Looks for the first <em>match</em> of
2540 <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) in the string <code>s</code>. 2540 <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) in the string <code>s</code>.
2541 If it finds one, then <code>match</code> returns 2541 If it finds one, then <code>match</code> returns
2546 A third, optional numerical argument <code>init</code> specifies 2546 A third, optional numerical argument <code>init</code> specifies
2547 where to start the search; 2547 where to start the search;
2548 its default value is&nbsp;1 and can be negative. 2548 its default value is&nbsp;1 and can be negative.
2549 2549
2550 2550
2551 <h4 heading><a name="String.matches"><code>String.matches (s, pattern)</code></a></h4> 2551 <h4 heading><a name="String.matches" href="#String.matches"><code>String.matches (s, pattern)</code></a></h4>
2552 <p> 2552 <p>
2553 Returns a boolean indicating whether the <code>pattern</code> can be found in string <code>s</code>. 2553 Returns a boolean indicating whether the <code>pattern</code> can be found in string <code>s</code>.
2554 This function is equivalent to 2554 This function is equivalent to
2555 2555
2556 <pre> 2556 <pre>
2557 return String.match(s,pattern) ~= nil 2557 return String.match(s,pattern) ~= nil
2558 </pre> 2558 </pre>
2559 2559
2560 2560
2561 <h4 heading><a name="String.rep"><code>String.rep (s, n [, sep])</code></a></h4> 2561 <h4 heading><a name="String.rep" href="#String.rep"><code>String.rep (s, n [, sep])</code></a></h4>
2562 <p> 2562 <p>
2563 Returns a string that is the concatenation of <code>n</code> copies of 2563 Returns a string that is the concatenation of <code>n</code> copies of
2564 the string <code>s</code> separated by the string <code>sep</code>. 2564 the string <code>s</code> separated by the string <code>sep</code>.
2565 The default value for <code>sep</code> is the empty string 2565 The default value for <code>sep</code> is the empty string
2566 (that is, no separator). 2566 (that is, no separator).
2567 Returns the empty string if <code>n</code> is not positive. 2567 Returns the empty string if <code>n</code> is not positive.
2568 2568
2569 2569
2570 2570
2571 2571
2572 <h4 heading><a name="String.reverse"><code>String.reverse (s)</code></a></h4> 2572 <h4 heading><a name="String.reverse" href="#String.reverse"><code>String.reverse (s)</code></a></h4>
2573 <p> 2573 <p>
2574 Returns a string that is the string <code>s</code> reversed. 2574 Returns a string that is the string <code>s</code> reversed.
2575 2575
2576 2576
2577 2577
2578 2578
2579 <h4 heading><a name="String.sub"><code>String.sub (s, i [, j])</code></a></h4> 2579 <h4 heading><a name="String.sub" href="#String.sub"><code>String.sub (s, i [, j])</code></a></h4>
2580 2580
2581 <p> 2581 <p>
2582 Returns the substring of <code>s</code> that 2582 Returns the substring of <code>s</code> that
2583 starts at <code>i</code> and continues until <code>j</code>; 2583 starts at <code>i</code> and continues until <code>j</code>;
2584 <code>i</code> and <code>j</code> can be negative. 2584 <code>i</code> and <code>j</code> can be negative.
2601 <code>i</code> is greater than <code>j</code>, 2601 <code>i</code> is greater than <code>j</code>,
2602 the function returns the empty string. 2602 the function returns the empty string.
2603 2603
2604 2604
2605 2605
2606 <h4 heading><a name="String.to_binary"><code>String.to_binary (s)</code></a></h4> 2606 <h4 heading><a name="String.to_binary" href="#String.to_binary"><code>String.to_binary (s)</code></a></h4>
2607 2607
2608 <p> 2608 <p>
2609 Converts a string to a binary by calling the Java method <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#getBytes()"><code>String.getBytes</code></a>. 2609 Converts a string to a binary by calling the Java method <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#getBytes()"><code>String.getBytes</code></a>.
2610 2610
2611 2611
2612 2612
2613 <h4 heading><a name="String.to_number"><code>String.to_number (s [, base])</code></a></h4> 2613 <h4 heading><a name="String.to_number" href="#String.to_number"><code>String.to_number (s [, base])</code></a></h4>
2614 2614
2615 <p> 2615 <p>
2616 When called with no <code>base</code>, 2616 When called with no <code>base</code>,
2617 <code>to_number</code> tries to convert its argument to a number. 2617 <code>to_number</code> tries to convert its argument to a number.
2618 If the argument is 2618 If the argument is
2633 If the string <code>s</code> is not a valid numeral in the given base, 2633 If the string <code>s</code> is not a valid numeral in the given base,
2634 the function returns <b>nil</b>. 2634 the function returns <b>nil</b>.
2635 2635
2636 2636
2637 2637
2638 <h4 heading><a name="String.trim"><code>String.trim (s)</code></a></h4> 2638 <h4 heading><a name="String.trim" href="#String.trim"><code>String.trim (s)</code></a></h4>
2639 2639
2640 <p> 2640 <p>
2641 Removes the leading and trailing whitespace by calling the Java method <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim()"><code>String.trim</code></a>. 2641 Removes the leading and trailing whitespace by calling the Java method <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim()"><code>String.trim</code></a>.
2642 2642
2643 2643
2644 2644
2645 2645
2646 <h4 heading><a name="String.unicode"><code>String.unicode (s [, i [, j]])</code></a></h4> 2646 <h4 heading><a name="String.unicode" href="#String.unicode"><code>String.unicode (s [, i [, j]])</code></a></h4>
2647 2647
2648 <p> 2648 <p>
2649 Returns the internal numerical codes of the characters <code>s[i]</code>, 2649 Returns the internal numerical codes of the characters <code>s[i]</code>,
2650 <code>s[i+1]</code>, ..., <code>s[j]</code>. 2650 <code>s[i+1]</code>, ..., <code>s[j]</code>.
2651 The default value for <code>i</code> is&nbsp;1; 2651 The default value for <code>i</code> is&nbsp;1;
2655 2655
2656 2656
2657 2657
2658 2658
2659 2659
2660 <h4 heading><a name="String.upper"><code>String.upper (s)</code></a></h4> 2660 <h4 heading><a name="String.upper" href="#String.upper"><code>String.upper (s)</code></a></h4>
2661 <p> 2661 <p>
2662 Receives a string and returns a copy of this string with all 2662 Receives a string and returns a copy of this string with all
2663 lowercase letters changed to uppercase. 2663 lowercase letters changed to uppercase.
2664 All other characters are left unchanged. 2664 All other characters are left unchanged.
2665 The definition of what a lowercase letter is depends on the current locale. 2665 The definition of what a lowercase letter is depends on the current locale.
2676 <pre> 2676 <pre>
2677 local Binary = require "luan:Binary" 2677 local Binary = require "luan:Binary"
2678 </pre> 2678 </pre>
2679 2679
2680 2680
2681 <h4 heading><a name="Binary.binary"><code>Binary.binary (&middot;&middot;&middot;)</code></a></h4> 2681 <h4 heading><a name="Binary.binary" href="#Binary.binary"><code>Binary.binary (&middot;&middot;&middot;)</code></a></h4>
2682 2682
2683 <p> 2683 <p>
2684 Receives zero or more bytes (as integers). 2684 Receives zero or more bytes (as integers).
2685 Returns a binary with length equal to the number of arguments, 2685 Returns a binary with length equal to the number of arguments,
2686 in which each byte has the internal numerical code equal 2686 in which each byte has the internal numerical code equal
2687 to its corresponding argument. 2687 to its corresponding argument.
2688 2688
2689 2689
2690 <h4 heading><a name="Binary.byte"><code>Binary.byte (b [, i [, j]])</code></a></h4> 2690 <h4 heading><a name="Binary.byte" href="#Binary.byte"><code>Binary.byte (b [, i [, j]])</code></a></h4>
2691 2691
2692 <p> 2692 <p>
2693 Returns the internal numerical codes of the bytes <code>b[i]</code>, 2693 Returns the internal numerical codes of the bytes <code>b[i]</code>,
2694 <code>b[i+1]</code>, ..., <code>b[j]</code>. 2694 <code>b[i+1]</code>, ..., <code>b[j]</code>.
2695 The default value for <code>i</code> is&nbsp;1; 2695 The default value for <code>i</code> is&nbsp;1;
2696 the default value for <code>j</code> is&nbsp;<code>i</code>. 2696 the default value for <code>j</code> is&nbsp;<code>i</code>.
2697 These indices are corrected 2697 These indices are corrected
2698 following the same rules of function <a href="#String.sub"><code>String.sub</code></a>. 2698 following the same rules of function <a href="#String.sub"><code>String.sub</code></a>.
2699 2699
2700 2700
2701 <h4 heading><a name="Binary.to_string"><code>Binary.to_string (b)</code></a></h4> 2701 <h4 heading><a name="Binary.to_string" href="#Binary.to_string"><code>Binary.to_string (b)</code></a></h4>
2702 <p> 2702 <p>
2703 Converts the binary <code>b</code> to a string using the Java <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#String(byte[])">String constructor</a>. 2703 Converts the binary <code>b</code> to a string using the Java <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#String(byte[])">String constructor</a>.
2704 2704
2705 2705
2706 2706
2718 This library provides generic functions for table manipulation. 2718 This library provides generic functions for table manipulation.
2719 It provides all its functions inside the table <code>Table</code>. 2719 It provides all its functions inside the table <code>Table</code>.
2720 2720
2721 2721
2722 2722
2723 <h4 heading><a name="Table.clear"><code>Table.clear (tbl)</code></a></h4> 2723 <h4 heading><a name="Table.clear" href="#Table.clear"><code>Table.clear (tbl)</code></a></h4>
2724 2724
2725 <p> 2725 <p>
2726 Clears the table. 2726 Clears the table.
2727 2727
2728 2728
2729 <h4 heading><a name="Table.concat"><code>Table.concat (list [, sep [, i [, j]]])</code></a></h4> 2729 <h4 heading><a name="Table.concat" href="#Table.concat"><code>Table.concat (list [, sep [, i [, j]]])</code></a></h4>
2730 2730
2731 <p> 2731 <p>
2732 Given a list, 2732 Given a list,
2733 returns the string <code>list[i]..sep..list[i+1] &middot;&middot;&middot; sep..list[j]</code>. 2733 returns the string <code>list[i]..sep..list[i+1] &middot;&middot;&middot; sep..list[j]</code>.
2734 The default value for <code>sep</code> is the empty string, 2734 The default value for <code>sep</code> is the empty string,
2735 the default for <code>i</code> is 1, 2735 the default for <code>i</code> is 1,
2736 and the default for <code>j</code> is <code>#list</code>. 2736 and the default for <code>j</code> is <code>#list</code>.
2737 If <code>i</code> is greater than <code>j</code>, returns the empty string. 2737 If <code>i</code> is greater than <code>j</code>, returns the empty string.
2738 2738
2739 2739
2740 <h4 heading><a name="Table.copy"><code>Table.copy (tbl [, i [, j]])</code></a></h4> 2740 <h4 heading><a name="Table.copy" href="#Table.copy"><code>Table.copy (tbl [, i [, j]])</code></a></h4>
2741 2741
2742 <p> 2742 <p>
2743 If <code>i</code> is <code>nil</code>, returns a shallow copy of <code>tbl</code>. 2743 If <code>i</code> is <code>nil</code>, returns a shallow copy of <code>tbl</code>.
2744 Otherwise returns a new table which is a list of the elements <code>tbl[i] &middot;&middot;&middot; tbl[j]</code>. 2744 Otherwise returns a new table which is a list of the elements <code>tbl[i] &middot;&middot;&middot; tbl[j]</code>.
2745 By default, <code>j</code> is <code>#tbl</code>. 2745 By default, <code>j</code> is <code>#tbl</code>.
2746 2746
2747 2747
2748 2748
2749 <h4 heading><a name="Table.insert"><code>Table.insert (list, pos, value)</code></a></h4> 2749 <h4 heading><a name="Table.insert" href="#Table.insert"><code>Table.insert (list, pos, value)</code></a></h4>
2750 2750
2751 <p> 2751 <p>
2752 Inserts element <code>value</code> at position <code>pos</code> in <code>list</code>, 2752 Inserts element <code>value</code> at position <code>pos</code> in <code>list</code>,
2753 shifting up the elements 2753 shifting up the elements
2754 <code>list[pos], list[pos+1], &middot;&middot;&middot;, list[#list]</code>. 2754 <code>list[pos], list[pos+1], &middot;&middot;&middot;, list[#list]</code>.
2755 2755
2756 2756
2757 2757
2758 <h4 heading><a name="Table.pack"><code>Table.pack (&middot;&middot;&middot;)</code></a></h4> 2758 <h4 heading><a name="Table.pack" href="#Table.pack"><code>Table.pack (&middot;&middot;&middot;)</code></a></h4>
2759 2759
2760 <p> 2760 <p>
2761 Returns a new table with all parameters stored into keys 1, 2, etc. 2761 Returns a new table with all parameters stored into keys 1, 2, etc.
2762 and with a field "<code>n</code>" with the total number of parameters. 2762 and with a field "<code>n</code>" with the total number of parameters.
2763 Note that the resulting table may not be a sequence. 2763 Note that the resulting table may not be a sequence.
2764 2764
2765 2765
2766 2766
2767 2767
2768 <h4 heading><a name="Table.remove"><code>Table.remove (list, pos)</code></a></h4> 2768 <h4 heading><a name="Table.remove" href="#Table.remove"><code>Table.remove (list, pos)</code></a></h4>
2769 2769
2770 2770
2771 <p> 2771 <p>
2772 Removes from <code>list</code> the element at position <code>pos</code>, 2772 Removes from <code>list</code> the element at position <code>pos</code>,
2773 returning the value of the removed element. 2773 returning the value of the removed element.
2780 in those cases, the function erases the element <code>list[pos]</code>. 2780 in those cases, the function erases the element <code>list[pos]</code>.
2781 2781
2782 2782
2783 2783
2784 2784
2785 <h4 heading><a name="Table.sort"><code>Table.sort (list [, comp])</code></a></h4> 2785 <h4 heading><a name="Table.sort" href="#Table.sort"><code>Table.sort (list [, comp])</code></a></h4>
2786 2786
2787 <p> 2787 <p>
2788 Sorts list elements in a given order, <em>in-place</em>, 2788 Sorts list elements in a given order, <em>in-place</em>,
2789 from <code>list[1]</code> to <code>list[#list]</code>. 2789 from <code>list[1]</code> to <code>list[#list]</code>.
2790 If <code>comp</code> is given, 2790 If <code>comp</code> is given,
2800 that is, elements considered equal by the given order 2800 that is, elements considered equal by the given order
2801 may have their relative positions changed by the sort. 2801 may have their relative positions changed by the sort.
2802 2802
2803 2803
2804 2804
2805 <h4 heading><a name="Table.unpack"><code>Table.unpack (list [, i [, j]])</code></a></h4> 2805 <h4 heading><a name="Table.unpack" href="#Table.unpack"><code>Table.unpack (list [, i [, j]])</code></a></h4>
2806 2806
2807 <p> 2807 <p>
2808 Returns the elements from the given list. 2808 Returns the elements from the given list.
2809 This function is equivalent to 2809 This function is equivalent to
2810 2810
2826 <pre> 2826 <pre>
2827 local Number = require "luan:Number" 2827 local Number = require "luan:Number"
2828 </pre> 2828 </pre>
2829 2829
2830 2830
2831 <h4 heading><a name="Number.double"><code>Number.double (x)</code></a></h4> 2831 <h4 heading><a name="Number.double" href="#Number.double"><code>Number.double (x)</code></a></h4>
2832 <p> 2832 <p>
2833 Returns <code>x</code> as a double. 2833 Returns <code>x</code> as a double.
2834 2834
2835 2835
2836 <h4 heading><a name="Number.integer"><code>Number.integer (x)</code></a></h4> 2836 <h4 heading><a name="Number.integer" href="#Number.integer"><code>Number.integer (x)</code></a></h4>
2837 <p> 2837 <p>
2838 If the value <code>x</code> is convertible to an integer, 2838 If the value <code>x</code> is convertible to an integer,
2839 returns that integer. 2839 returns that integer.
2840 Otherwise throws an error. 2840 Otherwise throws an error.
2841 2841
2842 2842
2843 <h4 heading><a name="Number.long"><code>Number.long (x)</code></a></h4> 2843 <h4 heading><a name="Number.long" href="#Number.long"><code>Number.long (x)</code></a></h4>
2844 <p> 2844 <p>
2845 If the value <code>x</code> is convertible to an long, 2845 If the value <code>x</code> is convertible to an long,
2846 returns that long. 2846 returns that long.
2847 Otherwise throws an error. 2847 Otherwise throws an error.
2848 2848
2849 2849
2850 <h4 heading><a name="Number.long_to_string"><code>Number.long_to_string (i, radix)</code></a></h4> 2850 <h4 heading><a name="Number.long_to_string" href="#Number.long_to_string"><code>Number.long_to_string (i, radix)</code></a></h4>
2851 <p> 2851 <p>
2852 Converts long value <code>i</code> to a string by calling <code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#toString(long,%20int)">Long.toString</a></code>. 2852 Converts long value <code>i</code> to a string by calling <code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#toString(long,%20int)">Long.toString</a></code>.
2853 2853
2854 2854
2855 <h4 heading><a name="Number.type"><code>Number.type (x)</code></a></h4> 2855 <h4 heading><a name="Number.type" href="#Number.type"><code>Number.type (x)</code></a></h4>
2856 <p> 2856 <p>
2857 Returns a string for the numeric type of <code>x</code>. Possible return values include "<code>integer</code>", "<code>long</code>", "<code>double</code>", and "<code>float</code>". 2857 Returns a string for the numeric type of <code>x</code>. Possible return values include "<code>integer</code>", "<code>long</code>", "<code>double</code>", and "<code>float</code>".
2858 2858
2859 2859
2860 2860
2871 <p> 2871 <p>
2872 This library provides basic mathematical functions. 2872 This library provides basic mathematical functions.
2873 It provides all its functions and constants inside the table <code>Math</code>. 2873 It provides all its functions and constants inside the table <code>Math</code>.
2874 2874
2875 2875
2876 <h4 heading><a name="Math.abs"><code>Math.abs (x)</code></a></h4> 2876 <h4 heading><a name="Math.abs" href="#Math.abs"><code>Math.abs (x)</code></a></h4>
2877 2877
2878 <p> 2878 <p>
2879 Returns the absolute value of <code>x</code>. 2879 Returns the absolute value of <code>x</code>.
2880 2880
2881 2881
2882 2882
2883 <h4 heading><a name="Math.acos"><code>Math.acos (x)</code></a></h4> 2883 <h4 heading><a name="Math.acos" href="#Math.acos"><code>Math.acos (x)</code></a></h4>
2884 2884
2885 <p> 2885 <p>
2886 Returns the arc cosine of <code>x</code> (in radians). 2886 Returns the arc cosine of <code>x</code> (in radians).
2887 2887
2888 2888
2889 2889
2890 2890
2891 <h4 heading><a name="Math.asin"><code>Math.asin (x)</code></a></h4> 2891 <h4 heading><a name="Math.asin" href="#Math.asin"><code>Math.asin (x)</code></a></h4>
2892 2892
2893 <p> 2893 <p>
2894 Returns the arc sine of <code>x</code> (in radians). 2894 Returns the arc sine of <code>x</code> (in radians).
2895 2895
2896 2896
2897 2897
2898 2898
2899 <h4 heading><a name="Math.atan"><code>Math.atan (y, x)</code></a></h4> 2899 <h4 heading><a name="Math.atan" href="#Math.atan"><code>Math.atan (y, x)</code></a></h4>
2900 2900
2901 <p> 2901 <p>
2902 Returns the arc tangent of <code>y/x</code> (in radians), 2902 Returns the arc tangent of <code>y/x</code> (in radians),
2903 but uses the signs of both parameters to find the 2903 but uses the signs of both parameters to find the
2904 quadrant of the result. 2904 quadrant of the result.
2905 (It also handles correctly the case of <code>x</code> being zero.) 2905 (It also handles correctly the case of <code>x</code> being zero.)
2906 2906
2907 2907
2908 2908
2909 2909
2910 <h4 heading><a name="Math.ceil"><code>Math.ceil (x)</code></a></h4> 2910 <h4 heading><a name="Math.ceil" href="#Math.ceil"><code>Math.ceil (x)</code></a></h4>
2911 2911
2912 <p> 2912 <p>
2913 Returns the smallest integral value larger than or equal to <code>x</code>. 2913 Returns the smallest integral value larger than or equal to <code>x</code>.
2914 2914
2915 2915
2916 2916
2917 2917
2918 <h4 heading><a name="Math.cos"><code>Math.cos (x)</code></a></h4> 2918 <h4 heading><a name="Math.cos" href="#Math.cos"><code>Math.cos (x)</code></a></h4>
2919 2919
2920 <p> 2920 <p>
2921 Returns the cosine of <code>x</code> (assumed to be in radians). 2921 Returns the cosine of <code>x</code> (assumed to be in radians).
2922 2922
2923 2923
2924 2924
2925 2925
2926 <h4 heading><a name="Math.deg"><code>Math.deg (x)</code></a></h4> 2926 <h4 heading><a name="Math.deg" href="#Math.deg"><code>Math.deg (x)</code></a></h4>
2927 2927
2928 <p> 2928 <p>
2929 Converts the angle <code>x</code> from radians to degrees. 2929 Converts the angle <code>x</code> from radians to degrees.
2930 2930
2931 2931
2932 2932
2933 2933
2934 <h4 heading><a name="Math.exp"><code>Math.exp (x)</code></a></h4> 2934 <h4 heading><a name="Math.exp" href="#Math.exp"><code>Math.exp (x)</code></a></h4>
2935 2935
2936 <p> 2936 <p>
2937 Returns the value <em>e<sup>x</sup></em> 2937 Returns the value <em>e<sup>x</sup></em>
2938 (where <code>e</code> is the base of natural logarithms). 2938 (where <code>e</code> is the base of natural logarithms).
2939 2939
2940 2940
2941 2941
2942 2942
2943 <h4 heading><a name="Math.floor"><code>Math.floor (x)</code></a></h4> 2943 <h4 heading><a name="Math.floor" href="#Math.floor"><code>Math.floor (x)</code></a></h4>
2944 2944
2945 <p> 2945 <p>
2946 Returns the largest integral value smaller than or equal to <code>x</code>. 2946 Returns the largest integral value smaller than or equal to <code>x</code>.
2947 2947
2948 2948
2949 2949
2950 2950
2951 <h4 heading><a name="Math.fmod"><code>Math.fmod (x, y)</code></a></h4> 2951 <h4 heading><a name="Math.fmod" href="#Math.fmod"><code>Math.fmod (x, y)</code></a></h4>
2952 2952
2953 <p> 2953 <p>
2954 Returns the remainder of the division of <code>x</code> by <code>y</code> 2954 Returns the remainder of the division of <code>x</code> by <code>y</code>
2955 that rounds the quotient towards zero. 2955 that rounds the quotient towards zero.
2956 2956
2957 2957
2958 2958
2959 2959
2960 <h4 heading><a name="Math.huge"><code>Math.huge</code></a></h4> 2960 <h4 heading><a name="Math.huge" href="#Math.huge"><code>Math.huge</code></a></h4>
2961 2961
2962 <p> 2962 <p>
2963 A value larger than any other numerical value. 2963 A value larger than any other numerical value.
2964 2964
2965 2965
2966 2966
2967 2967
2968 <h4 heading><a name="Math.log"><code>Math.log (x [, base])</code></a></h4> 2968 <h4 heading><a name="Math.log" href="#Math.log"><code>Math.log (x [, base])</code></a></h4>
2969 2969
2970 <p> 2970 <p>
2971 Returns the logarithm of <code>x</code> in the given base. 2971 Returns the logarithm of <code>x</code> in the given base.
2972 The default for <code>base</code> is <em>e</em> 2972 The default for <code>base</code> is <em>e</em>
2973 (so that the function returns the natural logarithm of <code>x</code>). 2973 (so that the function returns the natural logarithm of <code>x</code>).
2974 2974
2975 2975
2976 2976
2977 2977
2978 <h4 heading><a name="Math.max"><code>Math.max (x, &middot;&middot;&middot;)</code></a></h4> 2978 <h4 heading><a name="Math.max" href="#Math.max"><code>Math.max (x, &middot;&middot;&middot;)</code></a></h4>
2979 2979
2980 <p> 2980 <p>
2981 Returns the argument with the maximum value, 2981 Returns the argument with the maximum value,
2982 according to the Lua operator <code>&lt;</code>. 2982 according to the Lua operator <code>&lt;</code>.
2983 2983
2984 2984
2985 2985
2986 2986
2987 <h4 heading><a name="Math.max_integer"><code>Math.max_integer</code></a></h4> 2987 <h4 heading><a name="Math.max_integer" href="#Math.max_integer"><code>Math.max_integer</code></a></h4>
2988 <p> 2988 <p>
2989 An integer with the maximum value for an integer. 2989 An integer with the maximum value for an integer.
2990 2990
2991 2991
2992 2992
2993 2993
2994 <h4 heading><a name="Math.min"><code>Math.min (x, &middot;&middot;&middot;)</code></a></h4> 2994 <h4 heading><a name="Math.min" href="#Math.min"><code>Math.min (x, &middot;&middot;&middot;)</code></a></h4>
2995 2995
2996 <p> 2996 <p>
2997 Returns the argument with the minimum value, 2997 Returns the argument with the minimum value,
2998 according to the Lua operator <code>&lt;</code>. 2998 according to the Lua operator <code>&lt;</code>.
2999 2999
3000 3000
3001 3001
3002 3002
3003 <h4 heading><a name="Math.min_integer"><code>Math.min_integer</code></a></h4> 3003 <h4 heading><a name="Math.min_integer" href="#Math.min_integer"><code>Math.min_integer</code></a></h4>
3004 <p> 3004 <p>
3005 An integer with the minimum value for an integer. 3005 An integer with the minimum value for an integer.
3006 3006
3007 3007
3008 3008
3009 3009
3010 <h4 heading><a name="Math.modf"><code>Math.modf (x)</code></a></h4> 3010 <h4 heading><a name="Math.modf" href="#Math.modf"><code>Math.modf (x)</code></a></h4>
3011 3011
3012 <p> 3012 <p>
3013 Returns the integral part of <code>x</code> and the fractional part of <code>x</code>. 3013 Returns the integral part of <code>x</code> and the fractional part of <code>x</code>.
3014 3014
3015 3015
3016 3016
3017 3017
3018 <h4 heading><a name="Math.pi"><code>Math.pi</code></a></h4> 3018 <h4 heading><a name="Math.pi" href="#Math.pi"><code>Math.pi</code></a></h4>
3019 3019
3020 <p> 3020 <p>
3021 The value of <em>&pi;</em>. 3021 The value of <em>&pi;</em>.
3022 3022
3023 3023
3024 3024
3025 3025
3026 <h4 heading><a name="Math.rad"><code>Math.rad (x)</code></a></h4> 3026 <h4 heading><a name="Math.rad" href="#Math.rad"><code>Math.rad (x)</code></a></h4>
3027 3027
3028 <p> 3028 <p>
3029 Converts the angle <code>x</code> from degrees to radians. 3029 Converts the angle <code>x</code> from degrees to radians.
3030 3030
3031 3031
3032 3032
3033 3033
3034 <h4 heading><a name="Math.random"><code>Math.random ([m [, n])</code></a></h4> 3034 <h4 heading><a name="Math.random" href="#Math.random"><code>Math.random ([m [, n])</code></a></h4>
3035 3035
3036 3036
3037 <p> 3037 <p>
3038 When called without arguments, 3038 When called without arguments,
3039 returns a pseudo-random float with uniform distribution 3039 returns a pseudo-random float with uniform distribution
3051 No guarantees can be given for its statistical properties. 3051 No guarantees can be given for its statistical properties.
3052 3052
3053 3053
3054 3054
3055 3055
3056 <h4 heading><a name="Math.sin"><code>Math.sin (x)</code></a></h4> 3056 <h4 heading><a name="Math.sin" href="#Math.sin"><code>Math.sin (x)</code></a></h4>
3057 3057
3058 <p> 3058 <p>
3059 Returns the sine of <code>x</code> (assumed to be in radians). 3059 Returns the sine of <code>x</code> (assumed to be in radians).
3060 3060
3061 3061
3062 3062
3063 3063
3064 <h4 heading><a name="Math.sqrt"><code>Math.sqrt (x)</code></a></h4> 3064 <h4 heading><a name="Math.sqrt" href="#Math.sqrt"><code>Math.sqrt (x)</code></a></h4>
3065 3065
3066 <p> 3066 <p>
3067 Returns the square root of <code>x</code>. 3067 Returns the square root of <code>x</code>.
3068 (You can also use the expression <code>x^0.5</code> to compute this value.) 3068 (You can also use the expression <code>x^0.5</code> to compute this value.)
3069 3069
3070 3070
3071 3071
3072 3072
3073 <h4 heading><a name="Math.tan"><code>Math.tan (x)</code></a></h4> 3073 <h4 heading><a name="Math.tan" href="#Math.tan"><code>Math.tan (x)</code></a></h4>
3074 3074
3075 <p> 3075 <p>
3076 Returns the tangent of <code>x</code> (assumed to be in radians). 3076 Returns the tangent of <code>x</code> (assumed to be in radians).
3077 3077
3078 3078