#include "../nasal.h" double fibonaci(double x){ if(x<=2) return x; return fibonaci(x-1)+fibonaci(x-2); } extern "C" nasal_ref fib(std::vector& args,nasal_gc& gc){ nasal_ref num=args[0]; if(num.type!=vm_num) return builtin_err("extern_fib","\"num\" must be number"); return {vm_num,fibonaci(num.to_number())}; } extern "C" nasal_ref quick_fib(std::vector& args,nasal_gc& gc){ nasal_ref num=args[0]; if(num.type!=vm_num) return builtin_err("extern_fib","\"num\" must be number"); if(num.num()<2) return num; double a=1,b=1,res=0; for(double i=1;i