Functional Problem Solving (CSC 151 2013F) : EBoards

CSC151.02 2013F, Class 26: Recursion with Helper Procedures


Overview

Admin

Basics of helper recursion

#lang racket
(require gigls/unsafe)

(define sum1
  (lambda (lst)
    (if (null? lst)
        0
        (+ (car lst) (sum1 (cdr lst))))))

(define sum2
  (lambda (lst)
    (sum2-helper lst 0)))

(define sum2-helper
  (lambda (lst partial-sum)
    (if (null? lst)
        partial-sum
        (sum2-helper (cdr lst) (+ (car lst) partial-sum)))))

A term: Tail recursion

Lab


Samuel A. Rebelsky, rebelsky@grinnell.edu

Copyright (c) 2007-2013 Janet Davis, Samuel A. Rebelsky, and Jerod Weinman. (Selected materials are copyright by John David Stone or Henry Walker and are used with permission.)

Creative Commons License

This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/3.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.