fibonacci:
    proc options(main);
    dcl i fixed;
    do i = 0 to 100;
    put list(fib(i));
    end;

    fib:
        proc(n) returns(fixed) recursive;
        dcl n fixed;
        if n = 0 then
            return(1);
        if n = 1 then
            return(1);
        return(fib(n-1) + fib(n-2));
        end fib;
    end fibonacci;
