免责声明:我是 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]
这很好用,但如果标准模块中存在类似的东西而我根本没有看到它,我不会感到惊讶......