word 0 = "Zero"
word 1 = "One"
word 2 = "Two"
このようなパターンマッチング関数を1行に凝縮するにはどうすればよいですか?シングルラインパターンマッチングの構文は何ですか?
私はword 0 = "Zero" word 1 = "One" word 2 = "Two"
を試しましたが、うまくいきませんでした。
word 0 = "Zero"
word 1 = "One"
word 2 = "Two"
このようなパターンマッチング関数を1行に凝縮するにはどうすればよいですか?シングルラインパターンマッチングの構文は何ですか?
私はword 0 = "Zero" word 1 = "One" word 2 = "Two"
を試しましたが、うまくいきませんでした。
使用セミコロン:それはしかし、パターンマッチングよりも遅くなります場合、私は知らない
word = (!!) ["Zero", "One", "Two"]
:
word 0 = "Zero"; word 1 = "One"; word 2 = "Two"
あなたはこのようなものを使用することができます。
関数を1行で記述するのは奇妙な要件です。とにかく、case
も役に立ちます。
word x = case x of {0 -> "Zero"; 1 -> "One"; 2 -> "Two"}
別の可能性:
data Words = Zero | One | Two deriving (Show, Enum)
word = show . (toEnum :: Int -> Words)
か、あなたはそれがInt
以外のタイプで作業したい場合は、
word = show . ((toEnum.fromIntegral) :: Integral a => a->Words)