2. Функції.
----------------------------------------------------
-- 2. Функції.
----------------------------------------------------
function fib(n)
if n < 2 then return 1 end
return fib(n - 2) + fib(n - 1)
end
function adder(x)
return function (y) return x + y end
end
a1 = adder(9)
a2 = adder(36)
print(a1(16)) --> 25
print(a2(64)) --> 100
x, y, z = 1, 2, 3, 4
-- Зараз x = 1, y = 2, z = 3, а 4 викидається
function bar(a, b, c)
print(a, b, c)
return 4, 8, 15, 16, 23, 42
end
x, y = bar('zaphod') --> друкує "zaphod nil nil"
-- Тепер x = 4, y = 8, значення 15..42 відкидаються
-- Функції першого класу, можуть бути локальними / глобальними.
-- These are the same:
function f(x) return x * x end
f = function (x) return x * x end
-- And so are these:
local function g(x) return math.sin(x) end
local g; g = function (x) return math.sin(x) end
-- the 'local g' decl makes g-self-references ok.
print 'hello' -- вивести текст в консоль
Підписатися на:
Дописи (Atom)
Немає коментарів:
Дописати коментар