My name is Patrick Chkoreff. You can email me at and comments. For secure communications use my PGP Key.

To verify signatures on software releases, use the software signing key.

Biographical Note

I began programming in BASIC at Marist High School in 1974. I quickly progressed from Fibonacci on a teletype, to writing Space War games on a CRT. In 1980 I began programming in C at Georgia Tech. From 1982 to 1985 I did a good bit of scientific programming in Fortran. In 1984 I did AI programming in Lisp. In 1996 I began doing web programming in Perl, and in 2004 I started doing investment fund accounting in Perl as well.

My initiation to functional programming (not counting Lisp) came in 1989, when I read an article titled "Typed Representation of Objects by Functions", by Jørgen Steensgaard-Madsen. This introduced me to the notion that the dividing line between function and data could be blurred: i.e., that even data objects could behave like functions: most notably things like boolean values, lists, and tuples. I found that this has amazing expressive power, eliminating the need for traditional "accessor" functions (such as Lisp's car, cdr, and nullp) to examine and process data.

From 1996 to 2012 I continued to use Perl for all my work. I had an implementation of Fexl, but the momentum to stick with existing technology was great. Finally one day I was writing a new report for our investment accounting business, and I asked myself, "Why not just write this one report in Fexl?" I never looked back. Since then, I have been systematically replacing all our Perl code with Fexl, and writing all new code in Fexl. Fexl has a highly concise and precise expressive power, making it very amenable to refactoring and progressive refinement, and its module system based on the concept of context allows me to build any enhanced or restricted computing environment I need for any application domain.