Necesito una función que obtenga dos Ints ( ay b) y devuelva A/Bcomo Int. Estoy seguro de que A/Bsiempre será un número entero.
Aquí está mi solución:
myDiv :: Int -> Int -> Int
myDiv a b =
let x = fromIntegral a
y = fromIntegral b
in truncate (x / y)
Pero quiero encontrar una solución más sencilla. Algo como esto:
myDiv :: Int -> Int -> Int
myDiv a b = a / b
¿Cómo puedo dividir Int a Int y obtener Int?

a `quot` bpara los amantes de los infijos (guau, ¿puedes escapar de las comillas inversas en las comillas inversas con barra invertida?).a `div` b; si mal no recuerdo,quottrunca (como querían demasiados), ydivredondea hacia cero. Entonces(-3) `quot` 4 == 0, y(-3) `div` 4 == -1.div. Más matemáticamente educado,quotes una perra cuando hay números negativos alrededor.fromIntegral (ceiling (int1 / int2))y otras cosas, ninguna de las cuales me devolvió unaInt, pero esta sí.divredondea hacia infinito negativo, no cero.Esto es lo que hice para hacer el mío:
quot' a b | a<b = 0 -- base case | otherwise = 1 + quot' a-b bfuente
a<0) o nunca termina (b<0).