Laboratorio 1: Paradigma funcional (Scheme)
Se presenta proyecto semestral de laboratorio de la asignatura “Paradigmas de programación” de la Universidad Santiago de Chile, que consta en la creación de un clon de la aplicación Stackoverflow en el lenguaje Scheme, que consolida los conocimientos del paradigma funcional.
Paradigma: Funcional
Lenguage: Scheme (https://groups.csail.mit.edu/mac/projects/scheme/)
Entorno: DrRacket v7.8 (https://download.racket-lang.org/)
Abstracción | Contexto | Características (Qué) |
---|---|---|
Stack | Estructura base que funciona como contenedor de usuarios, preguntas, recompensas, respuestas y búsqueda. |
Lista de listas que se encarga de contener una serie de estructuras (del tipo lista), tales como: usuarios, preguntas, recompensas, respuestas y búsqueda dentro de la plataforma. |
Usuario (User) | Persona que publica, edita y elimina tanto preguntas como respuestas, ofrece recompensas, vota, reporta, entre otros. |
- Lista que posee credenciales de acceso y reputación - Ofrece reputación, pregunta y responde, da ranking, etc. dentro de la plataforma. |
Pregunta (Question) | Enunciado interrogativo realizado por un usuario sobre diversas tecnologías relacionadas a la ingeniería de software en la plataforma. |
- Lista que puede ser editada, modificada y eliminada. - Es creada por un usuario y recibe ranking por medio del mismo. - Posee textos con formato (negrita, cursiva) imágenes, enlaces y código - Posee un ID, votaciones (positivas y negativas), visualizaciones, etiquetas, título, contenido, fecha de publicación, fecha de última modificación , etc. - Es referenciada por una respuesta a través de su ID. |
Respuesta (Answer) | Enunciado que responde a una pregunta realizada por un usuario sobre diversas tecnologías relacionadas a la ingeniería de software en la plataforma |
- Lista que recibe ranking y referencia una pregunta. - Es creada por un usuario, quien puede recibir una bonificación (reputación) si esta es aceptada. - Posee un autor (usuario), fecha de publicación, votos (favor y contra), estado de aceptación (sí/no), reportes de ofensa y categorías (mejor respuesta, peor respuesta, etc). |
Recompensa (Reward) | Bonificación que genera un usuario y que compensa la utilidad de una pregunta dentro de la plataforma. |
- Lista que posee una descripción, id de pregunta y usuario que la otorgó. - Bonifica una pregunta y posee diversas reglas en su aplicación. |
Búsqueda (Search) | Motor de búsqueda dentro de la plataforma que resulta de utilidad para encontrar información rápidamente por medio de una coincidencia parcial de texto. |
- Búsqueda por etiqueta (entre corchetes) - Búsqueda palabra exacta (entre comillas) - Búsqueda por cantidad de respuestas (answers: numero_x) - Búsqueda por puntaje (score: numero_x) |
lab_git_18005106_TapiaBobadilla_main.rkt
, donde se ubican los casos pruebas.RUN
, esquina superior derecha del IDE.