2011-12-05 15 views

Respuesta

28

utilice punto y coma:

word 0 = "Zero"; word 1 = "One"; word 2 = "Two" 
10

usted podría utilizar algo como esto:

word = (!!) ["Zero", "One", "Two"] 

No sé si será más lenta que la coincidencia de patrones, sin embargo.

29

Es un requisito extraño escribir una función en una sola línea. De todos modos, case podría ser útil allí también.

word x = case x of {0 -> "Zero"; 1 -> "One"; 2 -> "Two"} 
3

Otra posibilidad:

data Words = Zero | One | Two deriving (Show, Enum) 

word = show . (toEnum :: Int -> Words) 

o, si se quiere que funcione con tipos distintos de Int,

word = show . ((toEnum.fromIntegral) :: Integral a => a->Words) 
Cuestiones relacionadas