48시간 안에 나만의 스킴 만들기/평가, 파트 1
(평가, 파트 1에서 넘어옴)
평가기 시작하기
+/-지금까지 만든 프로그램은 단지 리스프 코드 일부 조각을 입력으로 넣으면 프로그램이 그것을 파싱할 수 있는지, 없는지 화면에 출력할 뿐이다. 이제 제대로 동작하는 스킴 인터프리터를 만들어 보자. 첫 번째 구현할 기능은 변수에 코드를 저장하는 것이다. 조금씩 기능을 늘려서 계산까지 가능하도록 해보자.
먼저 타입이 LispVal
인 값을 화면에 출력하는 기능을 만들어보자.
showVal :: LispVal -> String
showVal (String contents) = "\"" ++ contents ++ "\""
showVal (Atom name) = name
showVal (Number contents) = show contents
showVal (Bool True) = "#t"
showVal (Bool False) = "#f"