Skip to content

Instantly share code, notes, and snippets.

@AldairCoronel
Created June 9, 2019 21:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AldairCoronel/4d83b2149006b4d07628efda3c2f45bb to your computer and use it in GitHub Desktop.
Save AldairCoronel/4d83b2149006b4d07628efda3c2f45bb to your computer and use it in GitHub Desktop.
-- Implementación de Máquina de Turing
-- Se define formalmente como TM = (Q, Σ, Γ, δ, qo, ␣, F) donde:
-- Q Conjunto de estados
-- Σ Alfabeto de entrada
-- Γ Alfabeto de la cinta
-- δ Función de transición
-- q0 Estado Inicial
-- ␣ Símbolo en blanco
-- F Conjunto de estados finales
-- Definamos los tipos∷
-- Una configuración se representa mediante el siguiente sinónimo
-- El entero representa la posición de la cabeza de lectoescritura en la cadena
type Config = (State, String, Int)
-- Recibe una MaqT y una cadena
-- Imprime el procesamiento formal de la cadena con configuraciones
compute :: MaqT -> String -> [Config]
-- Recibe una MaqT y una cadena
-- Regresa un bool diciendo si la cadena es aceptada [true] o no [false]
-- por la máquina de Turing
accept :: MaqT -> String -> Bool
-- Recibe una MaqT
-- Codifica la MaqT para pasarla como entrada de la Máquina Universal
encode :: MaqT -> String
-- EXTRA
-- Recibe una String representando una máquina codificada
-- Regresa la MaqT que representa
decode :: String -> MaqT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment