Práctica 2: Archivos requeridos
practica2.rkt
Archivo con los tipos de datos y funciones a completar.
#lang plai
#| Práctica 2: Tipos de datos abstractos |#
;; TDA para representar funciones.
;; Se tienen constructores para la variable independiente, constantes, suma de funciones,
;; multiplicación de funciones, división de funciones y potencia.
(define-type funcion
[tipo-funcion-no-implementado])
;; Función que regresa una cadena de caracteres, representando a la función que recibe como parámetro.
;; funcion->string: funcion -> string
(define (funcion->string f)
(error 'funcion->string "Función no implementada."))
;; Función que devuelve el resultado de evaluar la función pasada como parámetro con el valor v, es
;; decir, regresa f(v).
(define (evalua f v)
(error 'evalua "Función no implementada"))
;; Función que regresa la derivada de una función.
;; deriva: funcion -> funcion
(define (deriva f)
(error 'deriva "Función no implementada"))
; ------------------------------------------------------------------------------------------------ ;
;; TDA para representar autómatas finitos deterministas.
;; Se tiene un único constructor para representar autómatas finitos deterministas como la quintúpla
;; correspondiente.
(define-type automata
[tipo-automata-no-implementado])
;; Función que verifica que un afd está bien construido. Verifica que el símbolo inicial y el conjunto
;; de símbolos finales pertenecen al conjunto de estados.
;; verifica: automata -> boolean
(define (verifica atm)
(error 'verifica "Función no implementada"))
;; Predicado que dado un afd y una lista de símbolos que representan una expresión, deterimina si es
;; aceptada por el autómata.
(define (acepta? atm lst)
(error 'acepta? "Función no implementada"))
; ------------------------------------------------------------------------------------------------ ;
;; TDA para representar una gramática de arreglos.
;; Se tienen constructores que permiten definir un arreglo, para especificar la operación de agregar
;; un elemento y un tercero para obtener elemento.
(define-type arreglo
[tipo-arreglo-no-implementado])
;; Función que evalúa expresiones de tipo arreglo.
;; calc-a: arreglo -> arreglo
(define (calc-a arr)
(error 'calc-a "Función no implementada"))
; ------------------------------------------------------------------------------------------------ ;
;; TDA para representar una gramática de conjuntos.
;; Se tienen constructores que permiten definir un conjunto, determinar si el conjunto es vacío,
;; determinar si un elemento está contenido en el conjunto, agregar un elemento, unir conjunto,
;; intersectar conjunto y calcular la diferencia.
(define-type conjunto
[tipo-conjunto-no-implementado])
;; Función que evalúa expresiones de tipo conjunto.
;; calc-c: conjunto -> conjunto
(define (calc-c cto)
(error 'calc-c "Función no implementada"))
test-practica2.rkt
Archivo con las pruebas unitarias de la práctica.
#lang plai
(require "practica2.rkt")
(print-only-errors)
#| Módulo para pruebas unitarias de la práctica 2 |#
;; Pruebas para funcion->string
#| ... Aquí van las pruebas (Borrar este comentario) ... |#
;; Pruebas para evalua
#| ... Aquí van las pruebas (Borrar este comentario) ... |#
;; Pruebas para deriva
#| ... Aquí van las pruebas (Borrar este comentario) ... |#
;; Pruebas para verifica
#| ... Aquí van las pruebas (Borrar este comentario) ... |#
;; Pruebas para acepta?
#| ... Aquí van las pruebas (Borrar este comentario) ... |#
;; Pruebas para calc-a
#| ... Aquí van las pruebas (Borrar este comentario) ... |#
;; Pruebas para calc-c
#| ... Aquí van las pruebas (Borrar este comentario) ... |#