[Haskell-cafe] First order Haskell without Data

Neil Mitchell ndmitchell at gmail.com
Wed Apr 18 21:47:30 EDT 2007


Hi,

I've been wondering what is essential to Haskell and what isn't. Not
from a point of view of what could be removed from the language, but
what could be removed from a Core language.

Given the features of higher-order, laziness and data types:

Laziness can be converted to higher-order functions

Data types can be converted to higher-order functions

Higher-order functions can be converted to Data


So as far as I can see it we have left:
{data-types only}
{higher-order functions only}

But we don't have laziness only, so my question is if it is possible
to represent all of Haskell in a first-order language without data
types, but with laziness. If its possible to do so in a strict
first-order language without data types, then I'd also be interested.

Are any of these known results?

Thanks

Neil

References:

* data types -> higher order is in "Efficient Interpretation by
Transforming Data Types and Patterns to Functions"
http://www.cs.nott.ac.uk/~nhn/TFP2006/Papers/03-JansenKoopmanPlasmeijer-EfficientInterpretation.pdf

* laziness -> functions, functions -> data is in "Definitional
Interpreters for Higher-Order Programming Languages"
http://www.brics.dk/~hosc/local/HOSC-11-4-pp363-397.pdf


More information about the Haskell-Cafe mailing list