-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTDA_usuarios_21009500_VenegasAbarca.bak
51 lines (38 loc) · 1.39 KB
/
TDA_usuarios_21009500_VenegasAbarca.bak
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#lang racket
; Se definira el tda usuario con los siguientes elementos
; (nombre, contraseña)
; se tomara en consideracion que los usuarios siempren se almacenaran en listas para funciones de busqueda
(provide (all-defined-out))
(define user-set list-set)
(define user-next cdr)
(define user-first car)
(define user-empty '())
; Constructor de un usuario
; Dom: StringXString
; Rec: usuario
(define (usuario user cont) (
list user cont))
; obtencion del nombre de un usuario
; Dom: usuario
; Rec: String
(define (getUser usuario) (car usuario))
; obtencion de la contraseña de un usuario
; Dom: usuario
; Rec: String
(define (getPass usuario) (list-ref usuario 1))
; comprobacion de si es un usuario o no
; Dom: SupuestoUser
; Rec: Boolean
(define (user? usuario) (
if (= (length usuario )2)
(andmap string? usuario) #f))
; verificar si el nombre de usuario es igual un string
; Dom: usuarioXString
; Rec: Boolean
(define (userName? usuario texto)(equal? texto (getUser usuario)))
; Comprobar si un user y un password entregado concide con el usuario
; Dom: usuarioXStringXString
; Rec: Boolean
(define (userCanLog? usuario user pass) (and
(equal? user (getUser usuario) )
(equal? pass (getPass usuario))))