Navigation : 
        
          
    
   AP CS 
    
   Artificial Intelligence 
    
   Intermediate CS  
    
  - 
   3. Images 
    
  - 
   7. Numbers 
    
  - 
   8. Number Models 
    
  - 
   13. Booleans 
    
  - 
   15. Conditionals 
    
  - 
   20. Using Structures 
    
  - 
   Sem.I Review 
    
  - 
   21. Structures 
    
  - 
   22a. Recursion  
      -- 22a. Fibonacci 
      -- 22a. Digits 
      -- 22a. Sum Digits 
      -- 22a. Fibsum 
      -- 22a. More Recursion 
      -- 22a. Harmonic 
      -- 22a. Practice++ 
      -- 22a. ss3 
      -- 22a. Recursive Helpers 
      -- 22a. Recursion Quiz Practice 
      -- 22a. Recursion Quiz 2018 
      -- 22a. Recursion Practice I 2019 
      -- Roygbiv Code 
      -- 22a. Strings 
      -- 22a. Helpers 
      -- 22a. Helpers: Count Divisors 
      -- 22a. Recursion Practice 3 
      -- 22a. Recursion Self Quiz 
      -- 22a. Recursion Practice 4 
      -- 22a. Mini-Quiz 
      -- 22a. Recursion Quiz 2 
      -- 22a. Recursion Practice 5 
      -- 22a. Recursion Practice 6 
      -- Quiz 3 (Hard) 
      -- Quiz 4 (Medium) 
    
  -- 
   22a. Hangman Project 
  
    
  - 
   22b. Lists 
    
  - 
   Sem.II Review 
    
  - 
   Typed Racket 
    
  - 
   Resources 
    
  - 
   Pro Features 
      - Online Help 
  
    
   Robotics 
    
   WY Robotics 
    
   Exploring CS (Teachers) 
    
   Resources 
         
       
    
    
    22a. Recursion Practice 4 
    
    
    
    Classwork (20 min) and discussion (25 min).
zoo-1: string -> string. Change every occurrence of “penguin” to “penguins” and change every occurrence of “mouse” to “mice”. Leave everything else alone.
  (check-expect (zoo-1 "mouse") "mice")
  (check-expect (zoo-1 "xmouse") "xmice")
  (check-expect (zoo-1 "mousex") "micex")
  (check-expect (zoo-1 "mouse moose") "mice moose")
  (check-expect (zoo-1 "mouse mouse") "mice mice")
  (check-expect (zoo-1 "penguin penguins") "penguins penguinss")
 
 
 
Review Homework 
sum5: number(n) -> number. Find the sum of the first n fifth powers, starting
with 1.
 (check-expect (sum5 3) (+ (* 1 1 1 1 1) (* 2 2 2 2 2) (* 3 3 3 3 3)))
 
 
double-middle: string -> string. Double every letter between j
and q in the alphabet (inclusive).
 (check-expect (double-middle "jog snake") "jjoog snnakke")