mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| % 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
 |