declare

fun {Fact N}

if N == 0 then 1 else N*{Fact N-1} end

end

declare

fun {PartialFact N R} % N > R > 0

% local variables to be used must be declared

% in the start

F in

fun {F K}

if K==(N-R+1) then K else K*{F K-1} end

end

{F N}

end

declare

fun {FastComb N R}

if R > 0 then {PartialFact N R} div {Fact R}

else N end

end

%(b)

declare

fun {FasterComb N R}

if R > (N div 2) then {FastComb N (N-R)} else {FastComb N R} end

end

{Browse {FasterComb 5 3}} %10

{Browse {FasterComb 5 0}} %5

## Friday, January 16, 2009

### Ch1, Ex2

%(a)

Subscribe to:
Post Comments (Atom)

## No comments:

## Post a Comment