Oz is an actively used programming language created in 1991. Oz is a multiparadigm programming language, developed in the Programming Systems Lab at Université catholique de Louvain, for programming language education. It has a canonical textbook: Concepts, Techniques, and Models of Computer Programming. Oz was first designed by Gert Smolka and his students in 1991. Read more on Wikipedia...

28Years Old 529Users 2Jobs

Example code from the Hello World Collection:

% Hello World in Oz

functor
import
  System
  Application
define
  {System.showInfo "Hello World!"}
  {Application.exit 0}
end

Example code from Linguist:

% You can get a lot of information about Oz by following theses links  :
% - http://mozart.github.io/
% - http://en.wikipedia.org/wiki/Oz_(programming_language)
% There is also a well known book that uses Oz for pedagogical reason :
% - http://mitpress.mit.edu/books/concepts-techniques-and-models-computer-programming
% And there are two courses on edX about 'Paradigms of Computer Programming' that also uses Oz for pedagogical reason :
% - https://www.edx.org/node/2751#.VHijtfl5OSo
% - https://www.edx.org/node/4436#.VHijzfl5OSo
%
% Here is an example of some code written with Oz.

declare
% Computes the sum of square of the N first integers.
fun {Sum N}
  local SumAux in
    fun {SumAux N Acc}
      if N==0 then Acc
      else
        {Sum N-1 Acc}
      end
    end
    {SumAux N 0}
  end
end

% Returns true if N is a prime and false otherwize
fun {Prime N}
  local PrimeAcc in
    fun {PrimeAcc N Acc}
	    if(N == 1) then false
	    elseif(Acc == 1) then true
	    else
	      if (N mod Acc) == 0 then false
	      else
	       {PrimeAcc N Acc-1}
	      end
	   end
    end
  {PrimeAcc N (N div 2)}
  end
end

% Reverse a list using cells and for loop (instead of recursivity)
fun {Reverse L}
  local RevList in
    RevList = {NewCell nil}
    for E in L do
      RevList := E|@RevList
    end
    @RevList
  end
end

Example code from Wikipedia:

class Counter
   attr val
   meth init(Value)
      val:=Value
   end
   meth browse
      {Browse @val}
   end
   meth inc(Value)
      val :=@val+Value
   end
end

local C in
   C = {New Counter init(0)}
   {C inc(6)}
   {C browse}
end

Trending Repos

repo stars description

Last updated November 16th, 2019