Multiplication tables: Difference between revisions

Added Erlang
(→‎{{header|MATLAB}}: works in Octave, too.)
(Added Erlang)
Line 995:
|}
</blockquote>
 
=={{header|Erlang}}==
<lang Erlang>
-module( multiplication_tables ).
 
-export( [print_upto/1, task/0, upto/1] ).
 
print_upto( N ) ->
Upto_tuples = [{X, {Y, Sum}} || {X, Y, Sum} <- upto(N)],
io:fwrite( " " ),
[io:fwrite( "~5B", [X]) || X <- lists:seq(1, N)],
io:nl(),
io:nl(),
[print_upto(X, proplists:get_all_values(X, Upto_tuples)) || X <- lists:seq(1, N)].
 
task() -> print_upto( 12 ).
 
upto( N ) -> [{X, Y, X*Y} || X <- lists:seq(1, N), Y <- lists:seq(1, N), Y >= X].
 
 
 
print_upto( N, Uptos ) ->
io:fwrite( "~2B", [N] ),
io:fwrite( "~*s", [5*(N - 1), " "] ),
[io:fwrite("~5B", [Sum]) || {_Y, Sum} <- Uptos],
io:nl().
</lang>
{{out}}
<pre>
25> multiplication_tables:task().
1 2 3 4 5 6 7 8 9 10 11 12
 
1 1 2 3 4 5 6 7 8 9 10 11 12
2 4 6 8 10 12 14 16 18 20 22 24
3 9 12 15 18 21 24 27 30 33 36
4 16 20 24 28 32 36 40 44 48
5 25 30 35 40 45 50 55 60
6 36 42 48 54 60 66 72
7 49 56 63 70 77 84
8 64 72 80 88 96
9 81 90 99 108
10 100 110 120
11 121 132
12 144
</pre>
 
 
=={{header|Euphoria}}==
Anonymous user