Functional Problem Solving (CSC 151 2014S) : EBoards

CSC151.02 2014S, Class 06: Writing Your Own Procedures


Overview

Preliminaries

Admin

Work to do

Why define your own procedures?

It would helpful to be able to name that code, and to take different inputs

How to define your own procedures

A fascinating syntax

(define NAME-OF-PROCEDURE (lambda (INPUTS) EXPRESSION)

(define square (lambda (val) (* val val)))

We can call this like any other procedure already in Scheme

(square 5)

Like

(define val 5)
(* val val)

Similarly,

(define weighted-average
  (lambda (grade1 grade2 grade3 grade4 grade5)
    (/ (- (+ grade1 grade2 grade3 grade4 grade5)
          (min grade1 grade2 grade3 grade4 grade5)
          (max grade1 grade2 grade3 grade4 grade5))
       3)))

Call

(weighted-average 100 90 90 10 90)

Remember:

Questions

Lab

Lessons from the drawings lab


Samuel A. Rebelsky, rebelsky@grinnell.edu

Copyright (c) 2007-2014 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.