Bueh, me desconecté un poco del TP y arranqué la práctica. 😄
Acá va el de vectores y en otro topic el de matrices. Subo también un módulo para testear.
Cualquier cosa pregunten.
Ejercicio y módulo (para bajar)
CÓDIGO:
igualX :: Vector -> Vector -> Bool
igualX v1 v2 = (abscisa v1)==(abscisa v2)
igualY :: Vector -> Vector -> Bool
igualY v1 v2 = (ordenada v1)==(ordenada v2)
colineales :: Vector -> Vector -> Bool
colineales v1 v2
| ((abscisa v1)==0 && (ordenada v1)==0) || ((abscisa v2)==0 && (ordenada v2)==0) = True
| (abscisa v1)==0 = (abscisa v2)==0
| (abscisa v2)==0 = (abscisa v1)==0
| (ordenada v1)==0 = (ordenada v2)==0
| (ordenada v2)==0 = (ordenada v1)==0
| otherwise = (abscisa v1)/(abscisa v2) == (ordenada v1)/(ordenada v2)
modulo :: Vector -> Float
modulo v = sqrt (x^2 + y^2)
where x = abscisa v
y = ordenada v
productoEscalar :: Vector -> Vector -> Float
productoEscalar v1 v2 = x1*x2 + y1*y2
where x1 = abscisa v1
x2 = abscisa v2
y1 = ordenada v1
y2 = ordenada v2