Copyright ©
2005 Suradet Jitprapaikulsarn
สงวนลิขสิทธิ์ 2548 สุรเดช จิตประไพกุลศาล
Homework 5 (Due Monday July 11, 2005)
- Write the function, sumPositive,
to calculate the sum of all positive numbers in the list of numbers. Solution.
;------------------------------------------------------------------------------
; @description calculate the sum of all positive numbers in a list-of-number
; @param L a list of number
; @return the sum of all positive numbers in L
; @contract sumPositive: LON -> number
; @example (sumPositive empty) = 0
; @example (sumPositive list-1) = 0
; @example (sumPositive list-2) = 5
; @example (sumPositive list-3) = 12
;------------------------------------------------------------------------------
(define (sumPositive L)
(cond
[(empty? L) 0]
[else (cond
[(> (LON-first L) 0) (+ (LON-first L) (sumPositive (LON-rest L))) ]
[else (sumPositive (LON-rest L)) ] ) ] ) )
;------
; Test
;------
"(sumPositive empty) = " (sumPositive empty)
"(sumPositive list-1) = " (sumPositive list-1)
"(sumPositive list-2) = " (sumPositive list-2)
"(sumPositive list-3) = " (sumPositive list-3)
- Write the function, sumSquare,
to calculate the sum of the square of each number in the list of
numbers.
;------------------------------------------------------------------------------
; @description calculate the sum of the square of each number in a list-of-number
; @param L a list of number
; @return the sum of the square of each number in L
; @contract sumSquare: LON -> number
; @example (sumSquare empty) = 0
; @example (sumSquare list-1) = 9
; @example (sumSquare list-2) = 25
; @example (sumSquare list-3) = 155
;------------------------------------------------------------------------------
(define (sumSquare L)
(cond
[(empty? L) 0]
[else (+ (* (LON-first L)
(LON-first L))
(sumSquare (LON-rest L))) ]))
;------
; Test
;------
"(sumSquare empty) = " (sumSquare empty)
"(sumSquare list-1) = " (sumSquare list-1)
"(sumSquare list-2) = " (sumSquare list-2)
"(sumSquare list-3) = " (sumSquare list-3)