2 … 잔을 비우다
79
는 위와 같은 방법이 통하지 않음을 알게 될 것이다. 오로지 흰 띠를 매야만
― 즉, 이 경우에는 루프를 제공하지 않는 언어에도 완전히 다르지만 여전히
유효한 해결법이 있다는 것을 받아들임으로써만―일은 해결될 것이다. J에
서 답은 아래와 같다.
sort 1 + (6 ? 49)
연습할 때나 토이 프로그램을 만들 때, 그리고 지금 하고 있는 일을 의식
적으로 돌이켜볼 때 도움이 되는 패턴들을 나중에 소개할 것이다. 이런 패턴
들은 당신이 가진 서로 다른 지식들 간의 공통점을 더 깊이 인식하도록 하
며, 생산성을 떨어뜨려서는 안 된다는 부담 없이 자신의 기술을 연마할 수
있는 상황을 만들게 해줄 것이다.
실천 방안
배운 것을 잊어버릴 수 있는 기회를 찾아보라. 이전의 경험을 일시적으로 잊
어야 하는 상황이라면 이상적일 것이다.
예를 들면, 특정 프로그래밍 패러다임
(명령적(imperative), 객체 지향적, 함수형, 배열/
벡터 지향적 등)
으로 작성했던 프로그램을 하나 골라서 다른 패러다임에 속한
언어로 다시 구현해 보라. 새로 구현한 코드는 당연히 새 언어의 관용적 표
현법을 따라야 한다. 만약 당신이 아는 언어가 모두 한 패러다임
(예를 들어 객체
지향)
에 속한다면, 이것은 새로운 패러다임을 배울 좋은 기회가 될 것이다.
17
(옮긴이) 1950년대에 발명된 수학용 프로그래밍 언어인 APL에 함수 레벨(function-level) 언어인
FP, FL을 접목해서 만든 언어로, 행렬 계산 같은 수학 분야에 주로 쓰인 ...