sicp ~p27