[SOLVED] CSI2120-Lab 10 Scheme

24.99 $

Category:

Description

Rate this product

Exercise 1: Building Lists

Use cons to build the following lists:


		'(3 4)
		'(1 2 3)
		'(a (b c))
		'(1)
		'(2 (3 (4)))

Exercise 2: List Entries

Use car and cdr to obtain the elements from the list.


;  	Example:
;       (define L '(1 2 3 4 5))    
;
; 	(car L)
; 	=> 1
;
; 	(cdr L)
;       => '(2 3 4 5)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Combine calls car and cdr to get the element 2, 3, 4 and 5 from the list L (4 solutions).


;       (define L '(1 2 3 4 5))    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Combine calls car and cdr to get the element 2 and 5 from the list LL (2 solutions).


;       (define LL '(1 (2 3 4) (5)))    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Note that you can use shorthand commands such


;       (cadr '(1 2))
;       => 2
;       (car (cdr '(1 2)))
;       => 2    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Exercise 3: Integer Range

Give a function that creates a list with integers in the specified range.


;       The function takes two indices, i and k, and produces the integers
;       between i and k including i and k.
;
; 	Example:
; 	(range 4 9)
; 	=> (4 5 6 7 8 9)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Exercise 4: Sum of Squares Digit

Consider the digits d_k,d_(k-1),…,d_1,d_0 of a positive integer number. The squares of the digits are then s = d_k^2 + d_(k-1)^2 + … + d_1^2 + d_0^2.

Create a function sosd that calculates the sum of square digits.


;   The function calculates the sum of square digits. 
;
; 	Example:
;  (sosd 130)
; 	=> 10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Exercise 5: Every k-th element


;      The function takes a list and an number selecting every kth
;      element. Start counting at 1.
;
; 	Example:
; 	(drop '(a b c d e f g h i k) 3)
; 	=> (a b d e g h k)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Exercise 5 and Quiz: List Manipulation

Define a function addSubList that processes a list of lists of numbers and adds up all sub-lists. The output of your function is a flat list of numbers. (You can assume that your function only receives valid input).

  (define Q '(1 2 (3 4) 1 5 (7 8)))
;;;;;;;;;;;;;;;;;;;;;
; (addSubList Q)      
; => '(1 2 7 1 5 15)
;;;;;;;;;;;;;;;;;;;