Corrective In-Context Learning: Evaluating Self-Correction in Large Language Models