Last active
April 12, 2018 22:46
-
-
Save renorram/dce7ac371a90563af4ffdec51f6c733e to your computer and use it in GitHub Desktop.
Imprime o ultimo elemento e enésimo elemento de uma lista usando Scheme.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(define (ultimo lis) | |
(cond | |
((null? lis) (display "Lista nula!")) | |
((null? (cdr lis)) (display (car lis))) | |
(else (ultimo (cdr lis))) | |
) | |
) | |
(ultimo '(A B C D E F B A D Z)) | |
(newline) | |
(define (enesimo n lis) | |
(cond | |
((eq? n 1) (display (car lis))) | |
(else (enesimo (- n 1) (cdr lis))) | |
) | |
) | |
(enesimo 3 '(A B C D)) | |
(define (count atm lis) | |
(cond | |
((null? lis) 0) | |
((eq? atm (car lis)) (+ 1 (count atm (cdr lis)))) | |
(else (count atm (cdr lis))) | |
) | |
) | |
; (count 1 '(1 2 3 4 5 1 1 23 1 45 5)) | |
(define (media lis) | |
(/ | |
(let nsum ([xlis lis]) | |
(cond | |
((null? xlis) 0) | |
(else (+ (car xlis) (nsum (cdr xlis)) )) | |
) | |
) | |
(let nmedia ([xlis lis]) | |
(cond | |
((null? xlis) 0) | |
(else (+ 1 (nmedia (cdr xlis)))) | |
)) | |
) | |
) | |
(media '(6 4 4 2)) | |
(define (inverter lis) | |
(list | |
(let n ([nlist lis]) | |
(cond | |
((not (null? nlist)) | |
(cons (n (cdr nlist)) (car nlist)) | |
) | |
) | |
) | |
) | |
) | |
(inverter '(1 2 3 4)) | |
; (cons 1 2) | |
; Checando se existe elemento repetido. | |
(define (is_repeated tlist) | |
(cond | |
((null? tlist) #f) | |
((equal? #t | |
(let exist_in ([element (car tlist)] [xlist (cdr tlist)]) | |
(cond | |
((null? xlist) #f) | |
((equal? element (car xlist)) #t) | |
(else (exist_in element (cdr xlist))) | |
) | |
) | |
) | |
#t | |
) | |
(else (is_repeated (cdr tlist))) | |
) | |
) | |
(is_repeated '(9 2 1 3 4 8 5)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment