如果我有一个功能(例如类型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