School of Computing

Linear, bounded, functional pretty-printing

S. Doaitse Swierstra and Olaf Chitil

Journal of Functional Programming, 19(01):182-196, January 2009 [doi].


We present two implementations of Oppen's pretty-printing algorithm in Haskell that meet the efficiency of Oppen's imperative solution but have a simpler, clear structure. We start with an implementation that uses lazy evaluation to simulate two co-operating processes. Then we present an implementation that uses higher-order functions for delimited continuations to simulate co-routines with explicit scheduling.

Download publication 168 kbytes (PDF)

Bibtex Record

author = {Swierstra, S. Doaitse and Chitil, Olaf},
title = {Linear, bounded, functional pretty-printing},
month = {January},
year = {2009},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {10.1017/S0956796808006990},
url = {},
    publication_type = {article},
    submission_id = {17476_1231244975},
    journal = {Journal of Functional Programming},
    volume = {19},
    number = {01},
    publisher = {Cambridge University Press},

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014