Functional Problem Solving (CSC 151 2013F) : EBoards
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] [FAQ] [IRC] [Teaching & Learning] [Grading]
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 (2010F)] [Weinman (2012F)]
Misc: [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] [Issue Tracker (Course)]
Overview
random procedure.Admin
vector-fill!Question on Vector-Fill!
; Goal of vector-fill!: Fill an existing vector with a particular value
> (define v (vector 1 2 3))
> v
'#(1 2 3)
> (vector-fill! v 0)
> v
'#(0 0 0)
; An INCORRECT solution
(define vector-fill!
(lambda (vec val)
(make-vector (vector-length vec) val)))
; This does not achieve the required goals. Yes, it gives a vector
; of the required form, but it's a NEW vector. (It doesn't mutate.)
(define vector-phil!
(lambda (vec val)
(for-each (lambda (i) (vector-set! vec i val))
(iota (vector-length vec)))))
(define vector-pfil!
(lambda (vec val)
(let kernel ([pos 0])
(when (< pos (vector-length vec))
(vector-set! vec pos val)
(kernel (+ pos 1))))))
Does it make a difference if you iteratire from vector-length to 0 or from 0 to vector-length?
Not really, it depends on the problem. Try one, see how well it works.
Questions on Homework
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] [FAQ] [IRC] [Teaching & Learning] [Grading]
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 (2010F)] [Weinman (2012F)]
Misc: [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] [Issue Tracker (Course)]
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.)

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.