nahuelDolian / FMI

0 stars 0 forks source link

Se podría hacer una función que a partir de otra, haga variar la deuda (orden superior) #7

Open natoszme opened 6 years ago

natoszme commented 6 years ago

https://github.com/nahuelDolian/FMI/blob/cd4a28b04b55bdc5d89223e8063c7f456db72017/FMI.hs#L31

Hay algo parecido entre esta y darPrestamo?

nahuelDolian commented 6 years ago

claro, un "modificar" deuda, pero el tema, los Float toman valores negativos? o tendria que hacer una fn que espera un valor y un operador ( + o -) ?

nahuelDolian commented 6 years ago

pensé en ésto, pero no estaría matchiando los tipos... lo que hice en la firma es poner el tipo del valor y el de la suma modificarDeuda:: Float->(Float->Float->Float)->Receta modificarDeuda valor operador pais = pais{deuda = (deuda pais) operador valor } peeeero: FMI.hs:12:51: error: • Couldn't match expected type ‘(Float -> Float -> Float) -> Float -> Float’ with actual type ‘Float’ • The function ‘deuda’ is applied to three arguments, but its type ‘Pais -> Float’ has only one In the ‘deuda’ field of a record In the expression: pais {deuda = (deuda pais) operador valor} | 12 | modificarDeuda valor operador pais = pais{deuda = (deuda pais) operador valor } | ^^^^^^^^^^^^^^^^^^^^^^^^^^^

natoszme commented 6 years ago

Antes de ver el error, hay algo que no me cierra:

lo que hice en la firma es poner el tipo del valor y el de la suma

por qué en la firma el tipo de la suma? Si siempre es una suma, no tendría mucho sentido parametrizarlo no?

p.d: si los floats pueden tomar negativos

nahuelDolian commented 6 years ago

perdon, ecribí mal, el tipo de la suma, que es el mismo tipo que la resta... Porque pensaba parametrizar ésa operacion.. pero ya que me decis que los floats admiten negativos, puedo costearlo por ese lado... ahora lo modifico!