2011-12-05 14 views

Odpowiedz

28

Używaj średników:

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

Można użyć coś takiego:

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

ja nie wiem, czy to będzie wolniej niż dopasowywania wzorców, choć.

29

To dziwne wymaganie, aby napisać funkcję w jednym wierszu. W każdym razie, case może być również pomocny.

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

Inna możliwość:

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

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

lub, jeśli chcesz pracować z typów innych niż Int,

word = show . ((toEnum.fromIntegral) :: Integral a => a->Words) 
Powiązane problemy