@ARTICLE{HanusTeegen20CoRR,
author    = "Hanus, M. and Teegen, F.",
title     = "Memoized Pull-Tabbing for Functional Logic Programming",
year      = "2020",
booktitle = "Pre-Proceedings of the 28th International Workshop on Functional
             and Logic Programming (WFLP 2020)",
journal   = {CoRR},
volume    = {abs/2008.11999},
abstract = {
Pull-tabbing is an evaluation technique for functional logic
programs which computes all non-deterministic results in a single
graph structure.  Pull-tab steps are local graph transformations
to move non-deterministic choices towards the root of an
expression.  Pull-tabbing is independent of a search strategy so
that different strategies (depth-first, breadth-first, parallel)
can be used to extract the results of a computation.  It has been
used to compile functional logic languages into imperative or
purely functional target languages.  Pull-tab steps might
duplicate choices in case of shared subexpressions.  This could
result in a dramatic increase of execution time compared to a
backtracking implementation.  In this paper we propose a
refinement which avoids this efficiency problem while keeping all
the good properties of pull-tabbing.  We evaluate a first
implementation of this improved technique in the Julia
programming language.
}
}
