SWI-Prolog
kathe
To think about thinking while thinking is quite enlightening.