comparison website/src/manual.html.luan @ 478:eb6d90fb0b5c

documentation
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 11 May 2015 15:06:46 -0600
parents cd22e4694ea3
children 1285c52ea9d4
comparison
equal deleted inserted replaced
477:b8ddd55c9b11 478:eb6d90fb0b5c
1 local Luan = require "luan:Luan"
1 local Io = require "luan:Io" 2 local Io = require "luan:Io"
2 local Html = require "luan:Html" 3 local Html = require "luan:Html"
3 local Http = require "luan:web/Http" 4 local Http = require "luan:web/Http"
4 local Shared = require "site:/Shared" 5 local Shared = require "site:/Shared"
5 6
218 always manipulate references to values; 219 always manipulate references to values;
219 these operations do not imply any kind of copy. 220 these operations do not imply any kind of copy.
220 221
221 222
222 <p> 223 <p>
223 The library function <a href="#pdf-type"><tt>Luan.type</tt></a> returns a string describing the type 224 The library function <a href="#Luan.type"><tt>Luan.type</tt></a> returns a string describing the type
224 of a given value (see <a href="#6.1">&sect;6.1</a>). 225 of a given value.
225 226
226 227
227 228
228 229
229 230
266 267
267 <h3 margin-top="1em"><a name="error">Error Handling</a></h3> 268 <h3 margin-top="1em"><a name="error">Error Handling</a></h3>
268 269
269 <p> 270 <p>
270 Luan code can explicitly generate an error by calling the 271 Luan code can explicitly generate an error by calling the
271 <a href="#pdf-error"><tt>error</tt></a> function. 272 <a href="#Luan.error"><tt>error</tt></a> function.
272 If you need to catch errors in Luan, 273 If you need to catch errors in Luan,
273 you can use <a href="#pdf-pcall"><tt>pcall</tt></a> or <a href="#pdf-xpcall"><tt>try</tt></a> 274 you can use <a href="#Luan.pcall"><tt>pcall</tt></a> or <a href="#Luan.try"><tt>try</tt></a>
274 to call a given function in <i>protected mode</i>. 275 to call a given function in <i>protected mode</i>.
275 276
276 277
277 <p> 278 <p>
278 Whenever there is an error, 279 Whenever there is an error,
309 and the metamethod is the function that performs the addition. 310 and the metamethod is the function that performs the addition.
310 311
311 312
312 <p> 313 <p>
313 You can query the metatable of any table 314 You can query the metatable of any table
314 using the <a href="#pdf-getmetatable"><tt>get_metatable</tt></a> function. 315 using the <a href="#Luan.get_metatable"><tt>get_metatable</tt></a> function.
315 316
316 317
317 <p> 318 <p>
318 You can replace the metatable of tables 319 You can replace the metatable of tables
319 using the <a href="#pdf-setmetatable"><tt>set_metatable</tt></a> function. 320 using the <a href="#Luan.set_metatable"><tt>set_metatable</tt></a> function.
320 321
321 322
322 <p> 323 <p>
323 A metatable controls how a table behaves in 324 A metatable controls how a table behaves in
324 arithmetic operations, bitwise operations, 325 arithmetic operations, bitwise operations,
490 491
491 <p> 492 <p>
492 Whenever there is a "new_index" metamethod, 493 Whenever there is a "new_index" metamethod,
493 Luan does not perform the primitive assignment. 494 Luan does not perform the primitive assignment.
494 (If necessary, 495 (If necessary,
495 the metamethod itself can call <a href="#pdf-rawset"><tt>raw_set</tt></a> 496 the metamethod itself can call <a href="#Luan.raw_set"><tt>raw_set</tt></a>
496 to do the assignment.) 497 to do the assignment.)
497 </li> 498 </li>
498 499
499 <li><b>"call": </b> 500 <li><b>"call": </b>
500 The call operation <tt>func(args)</tt>. 501 The call operation <tt>func(args)</tt>.
1815 <p> 1816 <p>
1816 The standard Luan libraries provide useful functions 1817 The standard Luan libraries provide useful functions
1817 that are implemented both in Java and in Luan itself. 1818 that are implemented both in Java and in Luan itself.
1818 How each function is implemented shouldn't matter to the user. 1819 How each function is implemented shouldn't matter to the user.
1819 Some of these functions provide essential services to the language 1820 Some of these functions provide essential services to the language
1820 (e.g., <a href="#pdf-type"><tt>type</tt></a> and <a href="#pdf-getmetatable"><tt>get_metatable</tt></a>); 1821 (e.g., <a href="#Luan.type"><tt>type</tt></a> and <a href="#Luan.get_metatable"><tt>get_metatable</tt></a>);
1821 others provide access to "outside" services (e.g., I/O). 1822 others provide access to "outside" services (e.g., I/O).
1822 1823
1823 1824
1824 <h3 margin-top="1em"><a name="default_lib">Default Environment</a></h3> 1825 <h3 margin-top="1em"><a name="default_lib">Default Environment</a></h3>
1825 1826
2109 Could be defined as: 2110 Could be defined as:
2110 2111
2111 <p><tt><pre> 2112 <p><tt><pre>
2112 function Luan.range(start, stop, step) 2113 function Luan.range(start, stop, step)
2113 step = step or 1 2114 step = step or 1
2114 step == 0 and Luan.error "bad argument #3 (step may not be zero)" 2115 step == 0 and <a href="#Luan.error">Luan.error</a> "bad argument #3 (step may not be zero)"
2115 local i = start 2116 local i = start
2116 return function() 2117 return function()
2117 if step > 0 and i <= stop or step < 0 and i >= stop then 2118 if step > 0 and i <= stop or step < 0 and i >= stop then
2118 local rtn = i 2119 local rtn = i
2119 i = i + step 2120 i = i + step
2286 <h4 margin-top="1em"><a name="Luan.VERSION"><tt>Luan.VERSION</tt></a></h4> 2287 <h4 margin-top="1em"><a name="Luan.VERSION"><tt>Luan.VERSION</tt></a></h4>
2287 2288
2288 <p> 2289 <p>
2289 A global variable (not a function) that 2290 A global variable (not a function) that
2290 holds a string containing the current interpreter version. 2291 holds a string containing the current interpreter version.
2291 The current value of this variable is "<tt>Luan 0.8</tt>". 2292 The current value of this variable is "<tt><%=Luan.VERSION%></tt>".
2292 2293
2293 2294
2294 2295
2295 2296
2296 2297