Common Lisp representer가 풀이에 적용하는 정규화를 개괄적으로 살펴봐요.
representer는 제출물을 읽을 때 read를 사용하고 representation을 쓸 때는 write를 사용하며, 그 밖에 몇 가지 정규화도 추가로 적용해요.
모든 제출물에는 다음과 같은 정규화가 적용돼요.
read로 제출물을 읽기 때문에 주석은 제거돼요.
문서 문자열에 들어 있을 수 있는 이름들을 정규화하는 대신, 문자열 자체를 제거해요. 다만 문서 문자열이 있었는지 없었는지는 representation에 기록돼요.
read로 제출물을 읽기 때문에 모든 심볼은 대문자로 정규화돼요.
representation은 write로 쓰기 때문에 들여쓰기, 공백, 빈 줄에 남겨 둔 닫는 괄호 같은 제출물 서식의 세부 사항은 representation에 남지 않아요.
함수, 변수, 매크로 이름과 패키지 같은 심볼은 gensyms로 매핑되어 representation에 사용돼요.