#lang scheme (define mylist '(1 2 3 d f g 4 3 2 1)) (define print-numbers (lambda (l) (cond ((null? l) (void)) ((number? (car l)) (print (car l)) (print-numbers (cdr l))) (else (print-numbers (cdr l)))))) (define print-numbers2 (lambda (l) (for-each (lambda (item) (when (number? item) (print item))) l))) (define numbers-in (lambda (l) (filter number? l))) (define print-numbers3 (lambda (l) (for-each print (numbers-in l)))) (define print-numbers4 (lambda (l) (for ((item l)) (when(number? item) (print item))))) (define squared-numbers (lambda (l) (cond ((null? l) '()) ((number? (car l)) (cons (*(car l) (car l)) (squared-numbers (cdr l)))) (else (squared-numbers (cdr l)))))) (define squared-odds-cubed-evens (lambda (l) (cond ((null? l) '()) ((number? (car l)) (if (odd?(car l)) (cons (*(car l) (car l)) (squared-odds-cubed-evens (cdr l))) (cons (*(car l) (car l)(car l)) (squared-odds-cubed-evens (cdr l))))) (else (squared-odds-cubed-evens (cdr l)))))) (define squared-odds-cubed-evens2 (lambda (l) (cond ((null? l) '()) ((number? (car l)) (cons (if (odd?(car l)) (*(car l) (car l)) (*(car l) (car l)(car l))) (squared-odds-cubed-evens2 (cdr l)))) (else (squared-odds-cubed-evens2 (cdr l)))))) (define print-numbers-nested (lambda (l) (cond ((null? l) (void)) ((number? (car l)) (print (car l)) (print-numbers-nested (cdr l))) ((list? (car l)) (print-numbers-nested (car l)) (print-numbers-nested (cdr l))) (else (print-numbers-nested (cdr l)))))) (define mynest '(a 2 3 (h 3 4 (3 4 56 9) a (b) (2 3)))) ;(print-numbers-nested mynest) (define squared-numbers-nested (lambda (l) (cond ((null? l) '()) ((number? (car l)) (cons (*(car l) (car l)) (squared-numbers-nested (cdr l)))) ((list? (car l)) (cons (squared-numbers-nested (car l)) (squared-numbers-nested (cdr l)))) (else (squared-numbers-nested (cdr l)))))) (squared-numbers-nested mynest)