create function r(str text) returns text as $$
begin
return reverse(str);
end;
$$ language plpgsql;
select * from r('Hello world!');
create function fact(n integer) returns integer as $$
declare
result integer := 1;
begin
for i in 2..n loop
result := result * i;
end loop;
return result;
end;
$$ language plpgsql;
select * from r('Hello world!');
select fact(10);
create function add_to_date(integer, date) returns date as 'select $2 + $1 days;' language sql;
select add_to_date(1, current_date);