CWL IN THIS FILE.
;; YOUR CWLs WILL BE SUFFICIENT TO IDENTIFY YOU AND, IF YOU HAVE
ONE, YOUR
;; PARTNER.
;;
(require spd/tags)
(@assignment psets/pset-08); Do not edit or remove this tag
;; If you are:
;; - A 110 or 107 student replace the first set of '???'s with your cwl.
;; For problem sets, If you have a partner, please replace the second
;; set of '???'s with their cwl. Remember this, it is what you will
;; do with these @cwl annotations for the whole course.
;; - A UBC Extended Learning student, replace the first set of ??? with
;; your email address as confirmed in the email you received from
;; extended learning. The handin password is also in that email.
;; Remember this, it is what you will do with these @cwl annotations
;; for the whole course.
;;
(@cwl ??? ???)
;; These problems will be autograded. NOTE that, for problems 1-5, all of the
;; following are required. Violating one or more will cause your solution to
;; receive 0 marks.
;;
;; - Files must not have any errors when the Check Syntax button is pressed.
;; Press Check Syntax and Run often, and correct any errors early.
;;
;; - The function definition MUST call one or more built-in abstract functions.
;;
;; - For maximum credit the function definition should use the most clear
;; and expressive combination of abstract functions. In particular, while
;; it is possible to just use foldr for these problems that is not always
;; correct. If what is happening is a filter, then it is not correct to
;; just implement filtering with foldr.
;;
;; - The function definition MUST NOT be recursive.
;;
;; - The function definition MUST NOT use any part of the recursive Natural
, ;; template or the (listof X) template.
;;
;; - it must not include (cond [(empty? ... anywhere
;; - it must not include (cond [(zero? ... anywhere
;; - it must not include (if (empty? ... anywhere
;; - it must not include (if (zero? ... anywhere
;;
;; - The result of the function must directly be the result of one of the
;; built-in abstract functions. So, for example, the following is not
;; a valid function body:
;;
;; (define (foo x)
;; (empty? (filter ...)))
;;
;; - You MUST NOT change or comment out any check-expects, but you are
free
;; to add new ones.
(@problem 1)
;;
;; Design a function called sum-squares that consumes a list of naturals,
;; and produces the sum of squaring all of the naturals in the list.
;;
;; For example: (sum-squares (list 5 2 4)) produces 45.
;;
;; Your function definition must use built-in abstract functions.
;; For full marks it must be a composition of exactly 2 built-in
;; abstract functions.
;;
(@htdf sum-squares) ; uncomment this when you start problem 1
(@signature (listof Natural) -> Natural)
;;produce sum of squaring all of naturals in given list
(check-expect (sum-squares empty) 0)
(check-expect (sum-squares (list 5 2 4)) 45)
(check-expect (sum-squares (list 1 1 1)) 3)