Memoing for logic programs