16 lines
710 B
Text
16 lines
710 B
Text
fcn convergeAt(n1,n2,etc){ ns:=vm.arglist;
|
|
ekgWs:=ns.apply(ekgW); ekgWs.apply2("next"); // pop initial 1
|
|
ekgNs:=List()*vm.numArgs; // ( (ekg(n1)), (ekg(n2)) ...)
|
|
do(1_000){ // find convergence in this many terms or bail
|
|
ekgN:=ekgWs.apply("next"); // (ekg(n1)[n],ekg(n2)[n] ...)
|
|
ekgNs.zipWith(fcn(ns,n){ ns.merge(n) },ekgN); // keep terms sorted
|
|
// are all ekg[n]s == and both sequences have same terms?
|
|
if(not ekgN.filter1('!=(ekgN[0])) and not ekgNs.filter1('!=(ekgNs[0])) ){
|
|
println("EKG(", ns.concat(","), ") converge at term ",ekgNs[0].len() + 1);
|
|
return();
|
|
}
|
|
}
|
|
println(ns.concat(",")," don't converge");
|
|
}
|
|
convergeAt(5,7);
|
|
convergeAt(2,5,7,9,10);
|