Greatest subsequential sum: Difference between revisions

→‎{{header|Prolog}}: added simpler second example.
m (→‎{{header|Sidef}}: replaced `.each_with_index` with `.each_kv`)
(→‎{{header|Prolog}}: added simpler second example.)
Line 2,254:
true ;
false.
</pre>
 
===Brute Force===
Works with [https://rosettacode.org/wiki/GNU_Prolog GNU Prolog].
<lang Prolog>subseq(Sub, Seq) :- suffix(X, Seq), prefix(Sub, X).
 
maxsubseq(List, Sub, Sum) :-
findall(X, subseq(X, List), Subs),
maplist(sum_list, Subs, Sums),
max_list(Sums, Sum),
nth(N, Sums, Sum),
nth(N, Subs, Sub).</lang>
{{out}}
<pre>| ?- maxsubseq([-1,-2,3,5,6,-2,-1,4,-4,2,-1], Sub, Sum).
 
Sub = [3,5,6,-2,-1,4]
Sum = 15 ?
 
yes
</pre>
 
Anonymous user