From 27d6efb5f5a076f825fe2da1875e0cabaf02b4e7 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 17 Nov 2021 23:03:07 +0800 Subject: + LuaMacro --- Tools/LuaMacro/tests/test-forall.lua | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Tools/LuaMacro/tests/test-forall.lua (limited to 'Tools/LuaMacro/tests/test-forall.lua') diff --git a/Tools/LuaMacro/tests/test-forall.lua b/Tools/LuaMacro/tests/test-forall.lua new file mode 100644 index 0000000..0139e97 --- /dev/null +++ b/Tools/LuaMacro/tests/test-forall.lua @@ -0,0 +1,33 @@ +require_ 'macro.forall' + +def_ dump(t) print '---'; forall val in t do print(val) end + +forall x in {10,20,30} do print(x) end + +t = {'hello','dolly'} +print '---' +forall name in t do print(name) end +print '---' +forall x in t if x:match 'o$' do print(x) end + +-- a wee bit tautological, but valid! +print '---' +forall x in L{x^2 | x in {10,20,30}} do print(x) end + +t = L{s:upper() | s in {'one','two','three'} if s ~= 'two'} + +dump(t) + +forall i = 1,5 do print(i) end + +t = L{2*i|i=1,10} + +dump(t) + +-- identity matrix using nested list comprehensions. +t = L{L{i==j and 1 or 0 | j=1,3} | i=1,3} + +-- note the other form of LCs: using 'for' means that you explicitly want +-- the generic Lua for-statement. +ls = L{line for line in io.lines 'test-forall.lua'} +print('length of this file',#ls) -- cgit v1.1-26-g67d0