如果我有一個功能(例如類型a -> b
的)包裹在一個Applicative
和可施加到其上的值(即在上述示例中a
類型的值),I可以如下應用它:預定義的Haskell運算符用於在Applicative中應用純數值?
doSomething :: Applicative f => f (a -> b) -> a -> f b
doSomething wrappedFn arg = wrappedFn <*> (pure arg)
我發現自己做了很多。是否有標準的預定義運算符可以使代碼更加簡潔,還是我需要自己定義一個?如果是後者,是否有傳統的名稱?
[本?](http://hayoo.fh-wedel.de/?查詢=應用程序+ f +%3D%3E + f +%28a + - %3E + b%29 + - %3E + a + - %3E + f + b) – Alec
請注意,'doSomething'不能節省您輸入的時間。它只是通過調用'doSomething'來代替'<*>'和'pure'的調用。重要的是,它不會擴展到2+參數函數,特別是如果你想允許一些參數是純的而且有些被包裝的話。我認爲僅僅編寫'純x'和'f <*> x <*>純y''可讀性更好。 – amalloy
@Alec - 是的,這似乎是我正在尋找的。想知道爲什麼hoogle沒有找到它...... – Jules