A Functional Artificial Life Simulator