Calculating with lenses

Hugo Pacheco, Alcino Cunha
<span title="">2011</span> <i title="ACM Press"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/4inzarpn6bccxa4a445nlydsbi" style="color: black;">Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation - PERM &#39;11</a> </i> &nbsp;
This paper presents an equational calculus to reason about bidirectional transformations specified in the point-free style. In particular, it focuses on the so-called lenses as a bidirectional idiom, and shows that many standard laws characterising point-free combinators and recursion patterns are also valid in that setting. A key result is that uniqueness also holds for bidirectional folds and unfolds, thus unleashing the power of fusion as a program optimisation technique. A rewriting system
more &raquo; ... or automatic lens optimisation is also presented, to prove the usefulness of the proposed calculus.
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1145/1929501.1929520">doi:10.1145/1929501.1929520</a> <a target="_blank" rel="external noopener" href="https://dblp.org/rec/conf/pepm/PachecoC11.html">dblp:conf/pepm/PachecoC11</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/pk6jb6dc35erpgomv27renmywi">fatcat:pk6jb6dc35erpgomv27renmywi</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20170816131851/http://repositorium.sdum.uminho.pt/bitstream/1822/15297/1/pepm11.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/db/c3/dbc35eddb798795d59dce97123c36451acf40a39.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1145/1929501.1929520"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> acm.org </button> </a>