Sunday, May 4, 2014

Find Maximum, Minimum, Total and Average from values in a Erlang list using Recursiveness

-module(summery_functions). 
-export([start/1]). 

start([Head|Tail]) -> 
        maximum(Head,Tail), 
        minimum(Head,Tail), 
        total(Head,Tail), 
        avg(Head,Tail,1). 


maximum (Head,[Head2|Tail2]) -> 
           if Head < Head2 -> 
                  maximum(Head2,Tail2); 
               true -> 
                  maximum(Head,Tail2) 
               end; 

maximum (Head,[]) -> 
             io:format("Maximum ~p ~n",[Head]). 


minimum(Head,[Head2|Tail2]) ->
           if Head > Head2 -> 
                 minimum(Head2,Tail2); 
               true -> minimum(Head,Tail2) 
           end; 
minimum (Head,[]) -> 
           io:format("Minimim ~p ~n",[Head]). 

 total(Total,[Head|Tail]) -> 
           total(Total+Head,Tail); 
           total(Total,[]) -> 
               io:format("Total ~p ~n",[Total]). 

avg(Total,[Head|Tail],Count) -> 
           avg(Total+Head,Tail,Count+1); 
           avg(Total,[],Count) -> 
               io:format("Average is ~p ~n",[Total/Count]).

Labels: , , , , , , , ,

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home