Fibonacci in PL/PgSQL
Posted by Doomshammer
on Saturday, January 20. 2007
at 15:59
in Anwendungen, English only, Fun, Privat, Thoughts
As if a Perl/Java/Lisp/C/Whitespace version of the fibonacci sequence isn't enough, here is my attempt in PL/PgSQL QUOTE:
CREATE OR REPLACE FUNCTION fi(n integer) RETURNS integer AS 'BEGIN IF n < 2 THEN RETURN n; END IF; RETURN fi(n - 1) + fi(n - 2); END;' LANGUAGE 'plpgsql'; CREATE OR REPLACE FUNCTION f(x integer) RETURNS text AS 'DECLARE o TEXT = ''''; BEGIN FOR i IN 0..x LOOP o = o || ''f('' || i || ''): '' || fi(i) || ''\n''; END LOOP; RETURN o; END;' LANGUAGE 'plpgsql';
Results in:
QUOTE:
# SELECT f(10) AS "Fibonacci";
Fibonacci
-----------
f(0): 0
f(1): 1
f(2): 1
f(3): 2
f(4): 3
f(5): 5
f(6): 8
f(7): 13
f(8): 21
f(9): 34
f(10): 55
Fibonacci
-----------
f(0): 0
f(1): 1
f(2): 1
f(3): 2
f(4): 3
f(5): 5
f(6): 8
f(7): 13
f(8): 21
f(9): 34
f(10): 55


