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]
這工作得很好,但如果這樣的事情在標準模塊存在,我根本沒看出來我也不會感到驚訝?
我想你想const函數:'(const 42)<$> [true,false]' – Lee
是的,就是這樣。猜猜我應該在發佈之前閱讀Prelude函數。介意讓這個答案能讓我接受它? –
在你的''const 42 <$> [true,false]'的具體例子中有FYI',在purescript-control中有'Data.Functor'的'<$' and '$>'組合器。這樣使用:'42 <$ [true,false]'和'[true,false] $> 42'。參考:https://pursuit.purescript.org/packages/purescript-control/0.3.2/docs/Data.Functor#v:(<$) – LiamGoodacre