화살표 말고도 다른 시각적 단서가 활용되기는 하지만, 특별한 의미는 없다. 단지 다이어그램에 제시된 개념을 명확히 하기 위한 것이다.
작은 지구는 ‘목록 검색’ 작업과 ‘목록 내용 검색’ 작업이 다른 함수와 다르다는 점을 상징한다. 작은 지구가 붙은 함수는 입력 파라미터만 변환하지 않고, 외부 정보에 접근해야 한다. 따라서 이런 함수는 순수하지 않은 연산을 수행해 결과를 계산하는 함수를 반환하는 것과 같다. 다음 장에서 이 주제에 대해 더 자세히 살펴보겠다.
앞에서 언급한 네 가지 단계가 어떻게 변형되면서 함께 작동해 원하는 결과를 만들어내는지에 대해 볼 수 있다. 단순함을 유지하기 위해 지금은 발생할 수 있는 오류를 무시한다. 오류를 처리하는 방법에 대해서는 4장 오류를 나타내도록 널 반환하기를 참고하라.
다음 단계는 함수가 사용할 타입을 모델링하는 것이다. 이미 User, ListName, ToDoList를 정의했으므로 다음과 같이 원시 HTML 문자열에 대한 래퍼만 만들면 된다(부록 B 데이터 클래스 참고).
data class HtmlPage( val raw: String )