annotate seqlua_c_example_test.lua @ 12:91b0d0d4c4dd
Added coroutine example to README
author |
jbe |
date |
Wed Aug 20 05:18:16 2014 +0200 (2014-08-20) |
parents |
564320bb2862 |
children |
29792283522f |
rev |
line source |
jbe@9
|
1 require "seqlua_c_example" -- defines functions "printcsv" and "printthree"
|
jbe@0
|
2
|
jbe@0
|
3 function alphabet()
|
jbe@0
|
4 local letter = nil
|
jbe@0
|
5 return function()
|
jbe@0
|
6 if letter == nil then
|
jbe@0
|
7 letter = "a"
|
jbe@0
|
8 elseif letter == "z" then
|
jbe@0
|
9 return nil
|
jbe@0
|
10 else
|
jbe@0
|
11 letter = string.char(string.byte(letter) + 1)
|
jbe@0
|
12 end
|
jbe@0
|
13 return letter
|
jbe@0
|
14 end
|
jbe@0
|
15 end
|
jbe@0
|
16
|
jbe@0
|
17 printcsv{"a", "b", "c"}
|
jbe@0
|
18 -- prints:
|
jbe@0
|
19 -- a,b,c
|
jbe@0
|
20
|
jbe@0
|
21 printcsv(alphabet())
|
jbe@0
|
22 -- prints:
|
jbe@0
|
23 -- a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
|
jbe@0
|
24
|
jbe@8
|
25 printthree(alphabet())
|
jbe@8
|
26 -- prints:
|
jbe@8
|
27 -- a
|
jbe@8
|
28 -- b
|
jbe@8
|
29 -- c
|
jbe@8
|
30
|
jbe@8
|
31 printthree(setmetatable({v="x"}, {__call=function(t) return t.v end}))
|
jbe@8
|
32 -- prints:
|
jbe@8
|
33 -- x
|
jbe@8
|
34 -- x
|
jbe@8
|
35 -- x
|
jbe@8
|
36
|