免责声明:我是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]
这种方法很好,但如果标准模块中存在类似的东西我就不会感到惊讶,而我根本就没看到它......
答案 0 :(得分:3)