diff options
author | David Walter Seikel | 2014-04-21 20:59:39 +1000 |
---|---|---|
committer | David Walter Seikel | 2014-04-21 20:59:39 +1000 |
commit | 9621add2918cc4943e6693b74ae85d51dd264fcf (patch) | |
tree | fff1edf2c69d7a08a0e12885eecc9b96ed847a6a /LuaSL/testLua/yueliang-0.4.1/test_lua/5.1/factorial.lua | |
parent | LuaSL_test's window doesn't need to be so huge. (diff) | |
download | SledjHamr-9621add2918cc4943e6693b74ae85d51dd264fcf.zip SledjHamr-9621add2918cc4943e6693b74ae85d51dd264fcf.tar.gz SledjHamr-9621add2918cc4943e6693b74ae85d51dd264fcf.tar.bz2 SledjHamr-9621add2918cc4943e6693b74ae85d51dd264fcf.tar.xz |
We don't need the testlua directory any more.
Diffstat (limited to 'LuaSL/testLua/yueliang-0.4.1/test_lua/5.1/factorial.lua')
-rw-r--r-- | LuaSL/testLua/yueliang-0.4.1/test_lua/5.1/factorial.lua | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/LuaSL/testLua/yueliang-0.4.1/test_lua/5.1/factorial.lua b/LuaSL/testLua/yueliang-0.4.1/test_lua/5.1/factorial.lua deleted file mode 100644 index 7c4cf0f..0000000 --- a/LuaSL/testLua/yueliang-0.4.1/test_lua/5.1/factorial.lua +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | -- function closures are powerful | ||
2 | |||
3 | -- traditional fixed-point operator from functional programming | ||
4 | Y = function (g) | ||
5 | local a = function (f) return f(f) end | ||
6 | return a(function (f) | ||
7 | return g(function (x) | ||
8 | local c=f(f) | ||
9 | return c(x) | ||
10 | end) | ||
11 | end) | ||
12 | end | ||
13 | |||
14 | |||
15 | -- factorial without recursion | ||
16 | F = function (f) | ||
17 | return function (n) | ||
18 | if n == 0 then return 1 | ||
19 | else return n*f(n-1) end | ||
20 | end | ||
21 | end | ||
22 | |||
23 | factorial = Y(F) -- factorial is the fixed point of F | ||
24 | |||
25 | -- now test it | ||
26 | function test(x) | ||
27 | io.write(x,"! = ",factorial(x),"\n") | ||
28 | end | ||
29 | |||
30 | for n=0,16 do | ||
31 | test(n) | ||
32 | end | ||