val Matrix=[ 0,20,23, 1, 0, 0, 0,
20, 0, 0, 4,15, 0, 0,
23, 0, 0,36, 0,28, 0,
1, 4,36, 0, 9,15,16,
0,15, 0, 9, 0, 0, 3,
0, 0,28,15, 0, 0,17,
0, 0, 0,16, 3,17, 0 ];
type tupel=(int);
val m1=Matrix;
val m2=Matrix;
fun Setze_null(list,Spalte:int,Zahl:int)=let
fun Spalte_(list,Spalte,Zahl)=((take(list,((Zahl-1)*7+Spalte)-1)) @ [0] @ (drop(list,((Zahl-1)*7+Spalte))))
fun Zeile_(list,Zeile,Zahl)= ((take(list,((Zeile-1)*7+Zahl)-1)) @ [0] @ (drop(list,((Zeile-1)*7+Zahl))))
(* else Zeile_(list,Spalte,Zahl+1) *)
in
if Zahl<7 then let
in
Setze_null((Spalte_((Zeile_(list,Spalte,Zahl)),Spalte,Zahl)),Spalte,Zahl+1)
(* Setze_null((Zeile_(list,Spalte,Zahl)),Spalte,Zahl+1) *)
end
else list
end;
val last:tupel=0;
(* fun Wert(i:int):tupel=let val #1(last)=#1(last)+i in last end; *)
fun add(i:int):tupel= (last)+i;
(*fun teste_Null(list,Zeile)=let
fun Schleife(Spalte)=if Spalte< 7 then
if nth(list,(Zeile-1)*7+Spalte-1)>0 then let
(* val Wert=Wert_(Wert)+Wert *)
val last=add(nth(list,(Zeile-1)*7+Spalte-1)
in
Wert(nth(list,(Zeile-1)*7+Spalte-1));
if Zeile < 7 then
teste_Null(list,Zeile+1)
else Schleife(Spalte+1)
end
else
Schleife(Spalte+1)
else last
in
Schleife(1)
end; *)
(* fun add(Wert):Tupel=if #1 last < Wert then #1 last else Wert *)
fun Teste(list,Zeile,Spalte)=let
fun Zeile_d(list,Spalte)=if nth(list,(Zeile-1)*7+Spalte-1)>0 andalso Spalte <=7 then let
in
( (print(toString(Zeile));print(toString(Spalte));print("j\n");print(" "));
(Teste(Setze_null(list,Zeile,1),Spalte,1) ))
end
else if Spalte<=7 then ((print(toString(Zeile));print(toString(Spalte));print("n");print(" "));
Zeile_d(list,Spalte+1)) else Teste(list,Zeile+1,1)
in
if Zeile<7 then
Zeile_d(list,Spalte) else if
nth(Spalte
Zeile_d(m1,Spalte) else nil
end;