Tuesday, January 1, 2013

2012 year in review

Most functional programming languages provide functions that convert input arguments into output arguments without any means of converting outputs back to inputs. I have been working on instead building a system of reversible computing.

In 2012 I found two types of reversible functions that are considerably important: place forms and enumerations. Enumerations are bijections that use the natural numbers as inputs and place forms are bijections that like the cons function split up and put together objects. I have a sophisticated system of places in place.clj and enumerations in the enum.clj file.

Lists, which are an essential structure in Lisp, combine both of these two principles by defining data structures that associate values with an enumerated set of places. The nth function enumerates the places of the Lisp list structure.

No comments:

Post a Comment