Maximum Segment Sum, Monadically (distilled tutorial, with solutions)

J Gibbons - arXiv preprint arXiv:1109.0782, 2011 - arxiv.org
arXiv preprint arXiv:1109.0782, 2011arxiv.org
The maximum segment sum problem is to compute, given a list of integers, the largest of the
sums of the contiguous segments of that list. This problem specification maps directly onto a
cubic-time algorithm; however, there is a very elegant linear-time solution too. The problem
is a classic exercise in the mathematics of program construction, illustrating important
principles such as calculational development, pointfree reasoning, algebraic structure, and
datatype-genericity. Here, we take a sideways look at the datatype-generic version of the …
The maximum segment sum problem is to compute, given a list of integers, the largest of the sums of the contiguous segments of that list. This problem specification maps directly onto a cubic-time algorithm; however, there is a very elegant linear-time solution too. The problem is a classic exercise in the mathematics of program construction, illustrating important principles such as calculational development, pointfree reasoning, algebraic structure, and datatype-genericity. Here, we take a sideways look at the datatype-generic version of the problem in terms of monadic functional programming, instead of the traditional relational approach; the presentation is tutorial in style, and leavened with exercises for the reader.
arxiv.org
Showing the best result for this search. See all results