I am using Dr.Racket, Intermediate Student with Lambda. I was wondering if there was any way I can simplify this code using any sort of method like lambda, abstraction, map, filter, etc.
; DRAWING FUNCTIONS
; draw-rocket: rocket scene --> scene
; Purpose: To draw the given rocket in the given scene
(define (draw-rocket a-rocket a-scene)
(place-image rocket-img a-rocket ROCKET-Y a-scene))
; draw-alien: alien scene --> scene
; Purpose: To draw the given alien in the given scene
(define (draw-alien an-alien a-scene)
(place-image alien-img
(posn-x an-alien)
(posn-y an-alien)
a-scene))
; draw-aliens: loa scn --> scene
; Purpose: To draw the aliens in the given scene
(define (draw-aliens a-loa scn)
(cond [(empty? a-loa) scn]
[else (draw-alien (first a-loa) (draw-aliens (rest a-loa) scn)
)]))
;
; draw-shot: shot scene --> scene
; Purpose: To draw the given shot in the given scene
(define (draw-shot a-shot scn)
(place-image SHOT-IMG (posn-x a-shot) (posn-y a-shot) scn))
; draw-aliens: loa scn --> scene
; Purpose: To draw the aliens in the given scene
(define (draw-shots a-los scn)
(cond [(empty? a-los) scn]
[else (draw-shot (first a-los) (draw-shots (rest a-los) scn)
)]))
; draw-world: world --> scene
; Purpose: Draw the world in the empty scene
(define (draw-world a-world)
(draw-rocket (world-rocket a-world)
(draw-aliens (world-aliens a-world)
draw-world
has mismatched parentheses. \$\endgroup\$