필자가 볼 수있는 한, Scheme을 사용한 함수 프로그래밍에서 iterting 구문을 가르치기위한 일반적인 (그리고 최선의 의견으로는) 순서는 재귀를 먼저 가르치고지도, 축소 및 모든 SRFI-1 절차와 같은 것으로 들어갈 수 있습니다. 재귀를 사용하면 학생은 반복하기에 필요한 모든 것을 갖기 때문에 (아마도 SRFI-1을 원한다면 모든 SRFI-1을 다시 작성하기 때문에) 아마 같을 것입니다.재귀 이전에지도/축소/학습을 배우거나 경험 한 경험이 있습니까?
이제 반대 접근법이 시도 된 적이 있는지 궁금합니다. SRFI-1에서 몇 가지 절차를 사용하십시오. 예를 들어 함수를 추정하는 데 충분하지 않은 경우에만 재귀를 사용하십시오. 내 생각 엔 그 결과가 좋지 않다는 것이지만,이 접근법에 대한 과거 경험에 대해 알고 싶습니다.
물론 이것은 Scheme에만 국한되지 않습니다. 질문은 모든 기능적 언어에도 유효합니다.
Dave Touretsky의 COMMON LISP: A Gentle Introduction to Symbolic Computation은 "응용 프로그래밍"(연결자 사용)을 가르치는 한 책이지만 Common Lisp 서적이므로 그 전에 반드시 반복적 인 반복을 가르 칠 수 있습니다.
예를 들면 다음과 같이 할 수 있습니다. MAP 및 REMOVE,하지만 재귀없이 효과적으로 REDUCE를 보여줄 수 있습니까? –
@sgm : 그냥 stuednts에게 * 사용하는 방법 * 줄이기, 그것을 implmenet하는 방법이 아니라. – Jay