Movimientos en el plano
Se consideran el tipo de las posiciones del plano definido por
type Posicion = (Int,Int)
y el tipo de las direcciones definido por
data Direccion = Izquierda | Derecha | Arriba | Abajo deriving Show
Definir las siguientes funciones
opuesta :: Direccion -> Direccion movimiento :: Posicion -> Direccion -> Posicion movimientos :: Posicion -> [Direccion] -> Posicion
tales que
-
opuesta d
es la dirección opuesta ded
. Por ejemplo,
opuesta Izquierda == Derecha
-
movimiento p d
es la posición reultante de moverse, desde la posiciónp
, un paso en la direcciónd
. Por ejemplo,
movimiento (2,5) Arriba == (2,6) movimiento (2,5) (opuesta Abajo) == (2,6)
-
movimientos p ds
es la posición obtenida aplicando la lista de movimientos según las direcciones deds
a la posiciónp
. Por ejemplo,
movimientos (2,5) [Arriba, Izquierda] == (1,6)