lambdaway
::
multiplication_table
1
|
list
|
login
|
load
|
|
_h1 tables for add, mult, pow ... _ul [[http://www.rosettacode.org/wiki/Multiplication_tables| http://www.rosettacode.org/wiki/Multiplication_tables]] {pre '{def format {lambda {:w :c} {@ style="width::wpx; color::c; text-align:right;" }}} -> {def format {lambda {:w :c} {@ style="background::c; text-align:right; width::wpx;"}}} '{def operation {lambda {:op :flag :i :j} {if {and {= :i 0} {= :j 0}} then {format 30 #fff} else {if {= :i 0} then {format 30 #ff0}:j else {if {= :j 0} then {format 30 #0ff}:i else {format 30 #ccc} {if {= :flag -1} then {if {<= :i :j} then {:op :i :j} else .} else {if {= :flag 1} then {if {>= :i :j} then {:op :i :j} else .} else {:op :i :j}}}}}}}} -> {def operation {lambda {:op :flag :i :j} {if {and {= :i 0} {= :j 0}} then {format 30 #fff} else {if {= :i 0} then {format 30 #ff0}:j else {if {= :j 0} then {format 30 #0ff}:i else {format 30 #ccc} {if {= :flag -1} then {if {<= :i :j} then {:op :i :j} else .} else {if {= :flag 1} then {if {>= :i :j} then {:op :i :j} else .} else {:op :i :j}}}}}}}} '{def make_table {lambda {:func :row :col} {table {@ style="box-shadow:0 0 8px #000;"} {S.map // apply {{lambda {:func :col :j} // function row {tr {S.map // apply {{lambda {:func :i :j} // function cell {td {:func :i :j}}} :func :j} // apply func on [i,j] {S.serie 0 :col}}}} :func :col} // from 0 to col {S.serie 0 :row} // from 0 to row }}}} -> {def make_table {lambda {:func :row :col} {table {@ style="box-shadow:0 0 8px #000;"} {S.map {{lambda {:func :col :j} {tr {S.map {{lambda {:func :i :j} {td {:func :i :j}}} :func :j} {S.serie 0 :col}}}} :func :col} {S.serie 0 :row}}}}} } _h3 1) addition x+y _p '{make_table {operation + 0} 5 15} displays {center {make_table {operation + 0} 5 15}} _h3 2) multiplication x*y _p '{make_table {operation * -1} 12 12} displays {center {make_table {operation * -1} 12 12}} _h3 3) power x{sup y} _p '{make_table {operation pow 1} 20 8} displays {center {make_table {operation pow 1} 20 8}}
lambdaway v.20211111