]> git.llucax.com Git - z.facultad/75.31/ejercicios.git/blob - 1.1.b.oz
Ejercicios del capítulo 2.
[z.facultad/75.31/ejercicios.git] / 1.1.b.oz
1 /****************************************************************************
2 Ejercicio: 1.1.b
3 Alumno: Leandro Lucarella
4 Fecha: dom mar 26 22:17:35 ART 2005
5 ****************************************************************************/
6
7 functor
8 import
9     Application
10     System
11 define
12     % Numerador
13     fun {Num N X}
14         if X == 0.0 then N else {Num N X-1.0} end
15     end
16     % Denominador (factorial)
17     fun {Fact X}
18         if X == 0.0 then 1.0 else X * {Fact X-1.0} end
19     end
20     % Combinatoria
21     fun {Comb2 N K}
22         if K == 0.0 then
23             1.0
24         else
25             {Num N K+1.0} / {Fact K}
26         end
27     end
28     % Combinatoria optimizada
29     fun {Comb N K}
30         if K > N / 2.0 then {Comb2 N N-K} else {Comb2 N K} end
31     end
32     % Imprimimos algo de ejemplo
33     {System.show {Comb 5.0 2.0}}
34     {Application.exit 0}
35 end
36
37 % vim: set et sw=4 sts=4 filetype=oz :