This project contains an exploration of the ideas found in the paper "Functional Geometry" by Peter Henderson, transposed to Prolog.
I learned about the paper and it's contents in a workshop by Einar Høst called: Escher in Elm.
It is a wonderfull workshop that clearly explains the ideas of functional geometry. I.e.
that one could write an algebraic description, embed it in a functional program, and execute it directly
These ideas can be expressed in various other languages as Einar Høst and others have shown. Examples include F#, PostScript and Rust.
This repository explores the ideas in Prolog.
Prolog seems well-suited to express the ideas of functional geometry.
Start SWI-Prolog and load the geometry.pl
file with the following command.
swipl geometry.pl
At the query prompt enter the following query.
escher(2, C), processTo('output.svg', C).
Where output.svg
is the file you want to write the result to.