RosettaCodeData/Task/Greatest-subsequential-sum/Common-Lisp/greatest-subsequential-sum-2.lisp

8 lines
335 B
Common Lisp
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
(defun max-subseq (seq)
(loop for subsequence in (mapcon (lambda (x) (maplist #'reverse (reverse x))) seq)
for sum = (reduce #'+ subsequence :initial-value 0)
with max-subsequence
maximizing sum into max
if (= sum max) do (setf max-subsequence subsequence)
finally (return max-subsequence))))