24 lines
779 B
Erlang
24 lines
779 B
Erlang
-module( trabb_pardo_knuth ).
|
|
|
|
-export( [task/0] ).
|
|
|
|
task() ->
|
|
Sequence = get_11_numbers(),
|
|
S = lists:reverse( Sequence ),
|
|
[perform_operation( fun function/1, 400, X) || X <- S].
|
|
|
|
|
|
alert( N ) -> io:fwrite( "Operation on ~p overflowed~n", [N] ).
|
|
|
|
get_11_numbers() ->
|
|
{ok, Ns} = io:fread( "Input 11 integers. Space delimited, please: ", "~d ~d ~d ~d ~d ~d ~d ~d ~d ~d ~d" ),
|
|
11 = erlang:length( Ns ),
|
|
Ns.
|
|
|
|
function( X ) -> math:sqrt( erlang:abs(X) ) + 5 * math:pow( X, 3 ).
|
|
|
|
perform_operation( Fun, Overflow, N ) -> perform_operation_check_overflow( N, Fun(N), Overflow ).
|
|
|
|
perform_operation_check_overflow( N, Result, Overflow ) when Result > Overflow -> alert( N );
|
|
perform_operation_check_overflow( N, Result, _Overflow ) -> io:fwrite( "f(~p) => ~p~n", [N, Result] ).
|