Functional Problem Solving (CSC 151 2014S) : EBoards
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] - [FAQ] [Teaching & Learning] [Grading] [Rubric] - [Calendar]
Current: [Assignment] [EBoard] [Lab] [Outline] [Partners] [Reading]
Sections: [Assignments] [EBoards] [Examples] [Handouts] [Labs] [Outlines] [Partners] [Readings]
Reference: [Setup] - [Functions A-Z] [Functions By Topic] - [Racket] [Scheme Report (R5RS)] [R6RS] [TSPL4]
Related Courses: [Davis (2013F)] [Rebelsky (2010S)] [Rebelsky (2013F)] [Weinman (2012F)] [Weinman (2014S)]
Misc: [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] [Issue Tracker (Course)]
Overview
What should our solution to problem 3 look like?
;;; Procedure:
;;; dwelling
;;; Parameters:
;;; width, a positive integer
;;; height, a positive integer
;;; Purpose:
;;; ...
(define dwelling
(lambda (width height)
(let ([scene (image-new width height)])
; Standard instructions
(context-set-fgcolor (irgb 128 64 196))
(image-select ellipse! scene REPLACE 10 10 (- width 20) 20)
(image-fill! scene)
...
; The required two-way decision
(if (< width 100)
...
...)
; The required three-way decision
(cond
([(< width height)
...]
[(> width height)
...]
[else
...]))
; The required one-way decision
(when (= width 42)
(image-show-text! scene "You got the answer!"))
scene))))
What do you want for the three examples?
Code. We'll run the code.
A simple color blend
> (image-show (image-compute (lambda (x y)
(irgb x 0 (- 256 x)))
256 256))
Something a bit more geometric
> (image-show (image-compute (lambda (x y)
(if (< x y)
(irgb 255 0 0)
(irgb 0 0 0)))
256 256))
Something very strange. Yay irgb!
> (image-show (image-compute (lambda (x y)
(* 100 x y))
256 256))
Something equally strange.
> (image-show (image-compute (lambda (x y)
(* 2 x y))
256 256))
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] - [FAQ] [Teaching & Learning] [Grading] [Rubric] - [Calendar]
Current: [Assignment] [EBoard] [Lab] [Outline] [Partners] [Reading]
Sections: [Assignments] [EBoards] [Examples] [Handouts] [Labs] [Outlines] [Partners] [Readings]
Reference: [Setup] - [Functions A-Z] [Functions By Topic] - [Racket] [Scheme Report (R5RS)] [R6RS] [TSPL4]
Related Courses: [Davis (2013F)] [Rebelsky (2010S)] [Rebelsky (2013F)] [Weinman (2012F)] [Weinman (2014S)]
Misc: [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] [Issue Tracker (Course)]
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.)

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.