17 lines
528 B
Plaintext
17 lines
528 B
Plaintext
procedure main(arglist)
|
|
L := if *arglist > 0 then arglist else [-7, 1, 5, 2, -4, 3, 0] # command line args or default
|
|
every writes( "equilibrium indicies of [ " | (!L ||" ") | "] = " | (eqindex(L)||" ") | "\n" )
|
|
end
|
|
|
|
procedure eqindex(L) # generate equilibrium points in a list L or fail
|
|
local s,l,i
|
|
|
|
every (s := 0, i := !L) do
|
|
s +:= numeric(i) | fail # sum and validate
|
|
|
|
every (l := 0, i := 1 to *L) do {
|
|
if l = (s-L[i])/2 then suspend i
|
|
l +:= L[i] # sum of left side
|
|
}
|
|
end
|