【发布时间】:2014-03-21 05:50:17
【问题描述】:
省略函数参数是简洁 Haskell 代码的好工具。
h :: String -> Int
h = (4 +) . length
如果在 case 语句中省略数据构造函数参数会怎样。下面的代码可能会被认为有点邋遢,其中s 和i 是A 和B 中的最终参数,但在每个案例匹配的正文中作为最终参数重复。
f :: Foo -> Int
f = \case
A s -> 4 + length s
B i -> 2 + id i
有没有办法在案例模式匹配中省略这些参数?对于具有大量参数的构造函数,这将从根本上缩短代码宽度。例如。以下伪代码。
g :: Foo -> Int
g = \case
{- match `A` constructor -> function application to A's arguments -}
A -> (4 +) . length
{- match `B` constructor -> function application to B's arguments -}
B -> (2 +) . id
【问题讨论】:
标签: haskell