a simple functional language interpreter