22a. Recursion Practice 3
Do at least the first three. Please make sure to write at least three tests for each function.
-
is-in-word?: string(letter) string(word) -> boolean. True if the letter is in the word, false otherwise.(check-expect (is-in-word? "x" "explode") true) (check-expect (is-in-word? "s" "juliuc caecar" false) -
word-shrink: string(word) number(starting-size) -> image. Create a picture of the word in which each letter is four points smaller than the previous letter. Do not let the font size go below 5pt.
(shrink-word "Perspective Drawing" 64)
-
sum-penta: number(start) number(end) -> number. The pentagonal numbers are created by making larger and larger pentagons - Wikipedia has a nice animated image. The formula for the nth pentagonal number is(* 0.5 n (- (* 3 n) 1)).Find the sum of all of pentagonal number
nfromn=startthroughn=end.n (penta n) (sum-penta 1 n) 1 1 1 2 5 6 3 12 18
Challenge
-
draw-tic-tac-toe: string -> image. Take a string containing 9 characters (from “X” “O” and “-”) and turn it into a 3x3 image of “X” “O” and blank squares in a tic-tac-toe board.Hint: You will probably want helper functions
draw-one-spaceanddraw-one-line.
(draw-tic-tac-toe "XXOO-OOXX")
-
(Math) Write
is-pentagonal?: number -> boolean. Then read Project Euler 44, which might be doable soon. You can celebrate if you find any two pentagonal numbers whose sum and difference are both pentagonal.