2

免责声明:我是 purescript 的新手,还没有深入了解这个令人惊叹但有点压倒性的类型系统。

假设我想要一个忽略其参数并始终返回相同值的函数。将其手动定义为匿名函数不是问题:

(\_ -> 42) <$> [true, false]
-- => [42, 42]

但我想知道是否有更惯用(和简洁)的方式来做到这一点。可能涉及Data.Const,但我还没有弄清楚如何使用它。类似的东西(getConst 42) <$> [true, false]不起作用。

编辑:自己定义:

makeConst :: forall a b. a -> (b -> a)
makeConst x = (\_ -> x)

(makeConst 42) <$> [true, false]
-- => [42, 42]

这很好用,但如果标准模块中存在类似的东西而我根本没有看到它,我不会感到惊讶......

4

1 回答 1

3

你想要的const功能

const :: forall a b. a -> b -> a

您可以使用它来创建您的功能:

(const 42) <$> [true, false]
于 2016-05-01T09:23:12.110 回答