2012-04-22 13 views
5

Tengo un programa que usa Int y Integer, porque algunas de las funciones devuelven resultados que son bastante grandes. Estoy cansado de tener que usar fromIntegral en todas partes y me preguntaba si hay una forma de hacer que Haskell ignore la distinción entre Int y Integer en la compilación.¿Puede Haskell ignorar Ints vs. Integers?

+4

No, no hay. Ignorar el hecho de que son tipos diferentes y propiedades diferentes sería malo en un lenguaje tan tipeado como Haskell. Estoy de acuerdo en que a veces es doloroso, pero ignorar la diferencia sería peor; y omitiendo todo el punto del tipo de seguridad que proporciona Haskell. –

+8

No, no hay. Y es algo bueno: tipo de seguridad. Sin embargo, puede definir una conversión con un nombre más corto para escribir :) –

+3

En GHC al menos, 'Integer' usará internamente' Int' durante el tiempo que sea posible, por lo que no tiene sentido usar 'Int' en este caso. – geekosaur

Respuesta

13

Solución: elimine el Int s de su programa y simplemente use todos los Integer s. Como señaló geekosaur, puede usar the generic functions from Data.List (por ejemplo, genericLength). Si nos proporciona su código de programa específico, entonces podríamos dar sugerencias más específicas.