mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Add some examples for Oz
This commit is contained in:
52
samples/Oz/example.oz
Normal file
52
samples/Oz/example.oz
Normal file
@@ -0,0 +1,52 @@
|
||||
% 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)
|
||||
% The 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 pedagocial 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
|
||||
Reference in New Issue
Block a user