]]> ]]>

Числа Фибоначчи в Oz

Пример для версий Mozart 1.4.0

Используется рекурсивное определение чисел Фибоначчи. Отметим, что в языке Oz значения переменным можно присваивать только один раз, поэтому для накопления вывода приходится использовать тип Cell — контейнер на один элемент.

functor
 
import
   Application System

define 
   fun{Fib N}
      fun{Loop N A B}
         if N == 0 then
            B
         else
            {Loop N-1 A+B A}
         end
      end
   in    
      {Loop N 1 0}
   end

local
   S
in
   S = {NewCell ""}
   for I in 1..16 do
        S := {Append {Append @S {Int.toString {Fib I}}} ", "}
   end
   {System.showInfo {Append @S "..."}}
   {Application.exit 0}
end

end

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам