diff --git a/bin/compare_implementations.pl b/bin/compare_implementations.pl index 2262f5c..f447f62 100755 --- a/bin/compare_implementations.pl +++ b/bin/compare_implementations.pl @@ -13,6 +13,7 @@ # we should change perl6 to rakudo perl6 => $ENV{PERL6} || catfile( $ENV{HOME},qw{git rakudo perl6}), ruby => $ENV{RUBY} || 'ruby', + erlang => $ENV{ERLANG} || 'escript', ); my ($profile_lang,$euler_problem,$count) = @ARGV; diff --git a/bin/compare_problem_number.pl b/bin/compare_problem_number.pl index 0faeb9d..7ca5892 100755 --- a/bin/compare_problem_number.pl +++ b/bin/compare_problem_number.pl @@ -13,6 +13,7 @@ # we should change perl6 to rakudo perl6 => $ENV{RAKUDO} || $ENV{PERL6} || catfile( $ENV{HOME},qw{git rakudo perl6}), ruby => $ENV{RUBY} || 'ruby', + erlang => $ENV{ERLANG} || 'escript', ); my @languages = keys %interp; diff --git a/erlang/001/01.erl b/erlang/001/01.erl new file mode 100755 index 0000000..930f3bb --- /dev/null +++ b/erlang/001/01.erl @@ -0,0 +1,17 @@ +#!/usr/bin/env escript + +main(_) -> + Sum = do_sum(0, 0), + io:format("~p~n", [Sum]). + +do_sum(1000, Acc) -> Acc; +do_sum(N, Acc) -> + NewAcc = + case N of + M when M rem 3 == 0 -> Acc + N; + M when M rem 5 == 0 -> Acc + N; + _ -> Acc + end, + do_sum(N+1, NewAcc). + + diff --git a/erlang/001/02.erl b/erlang/001/02.erl new file mode 100755 index 0000000..9e65966 --- /dev/null +++ b/erlang/001/02.erl @@ -0,0 +1,6 @@ +#!/usr/bin/env escript + +main(_) -> + Sum = lists:sum([ X || X <- lists:seq(1,999), + X rem 3 == 0 orelse X rem 5 == 0]), + io:format("~p~n", [Sum]).