Diferencia entre revisiones de «Práctica 2 (Paradigmas)»
(Practica 2 ej 1) |
(Ej 1 resuelto) |
||
Línea 2: | Línea 2: | ||
Determinar qué expresiones son sintácticamente válidas (es decir, pueden ser generadas con las gramáticas | Determinar qué expresiones son sintácticamente válidas (es decir, pueden ser generadas con las gramáticas | ||
presentadas) y determinar a qué categoría pertenecen (expresiones de términos o expresiones de tipos): | presentadas) y determinar a qué categoría pertenecen (expresiones de términos o expresiones de tipos): | ||
a) x | |||
b) x x | a) x ---------VALIDO, expresiones de términos | ||
c) M | |||
d) M M | b) x x ---------VALIDO, expresiones de términos | ||
e) true false | |||
f) true succ(false true) | c) M --------- No es un término | ||
g) λx.isZero(x) | |||
h) λx: σ. succ(x) | d) M M --------- No es un término | ||
i) λx: Bool. succ(x) | |||
j) λx: if true then Bool else Nat. x | e) true false ---------VALIDO, expresiones de términos | ||
k) σ | |||
l) Bool | f) true succ(false true) ---------VALIDO, expresiones de términos | ||
m) Bool → Bool | |||
n) Bool → Bool → Nat | g) λx.isZero(x) --------- Falta tipo | ||
ñ) (Bool → Bool) → Nat | |||
o) succ true | h) λx: σ. succ(x) --------- Falta tipo, sigma no es un tipo valido | ||
p) λx: Bool. if 0 then true else 0 succ(true) | |||
i) λx: Bool. succ(x) ---------VALIDO, expresiones de términos | |||
j) λx: if true then Bool else Nat. x --------- Falta tipo | |||
k) σ --------- Sigma no es un tipo valido | |||
l) Bool ---------VALIDO, expresiones de tipos | |||
m) Bool → Bool ---------VALIDO, expresiones de tipos | |||
n) Bool → Bool → Nat ---------VALIDO, expresiones de tipos | |||
ñ) (Bool → Bool) → Nat ---------VALIDO, expresiones de tipos | |||
o) succ true --------- Si succ fuera una variables seria una aplicación, pero el enunciado dice que las variables se representan con una letra por lo cual a succ como termino le faltan los paréntesis. | |||
p) λx: Bool. if 0 then true else 0 succ(true) ---------VALIDO, expresiones de términos |
Revisión del 16:09 6 oct 2021
Ejercicio 1
Determinar qué expresiones son sintácticamente válidas (es decir, pueden ser generadas con las gramáticas presentadas) y determinar a qué categoría pertenecen (expresiones de términos o expresiones de tipos):
a) x ---------VALIDO, expresiones de términos
b) x x ---------VALIDO, expresiones de términos
c) M --------- No es un término
d) M M --------- No es un término
e) true false ---------VALIDO, expresiones de términos
f) true succ(false true) ---------VALIDO, expresiones de términos
g) λx.isZero(x) --------- Falta tipo
h) λx: σ. succ(x) --------- Falta tipo, sigma no es un tipo valido
i) λx: Bool. succ(x) ---------VALIDO, expresiones de términos
j) λx: if true then Bool else Nat. x --------- Falta tipo
k) σ --------- Sigma no es un tipo valido
l) Bool ---------VALIDO, expresiones de tipos
m) Bool → Bool ---------VALIDO, expresiones de tipos
n) Bool → Bool → Nat ---------VALIDO, expresiones de tipos
ñ) (Bool → Bool) → Nat ---------VALIDO, expresiones de tipos
o) succ true --------- Si succ fuera una variables seria una aplicación, pero el enunciado dice que las variables se representan con una letra por lo cual a succ como termino le faltan los paréntesis.
p) λx: Bool. if 0 then true else 0 succ(true) ---------VALIDO, expresiones de términos