问题标签 [applicative]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 如何映射申请表?
我想映射到 Applicative 表单。
类地图函数的类型如下:
用作:
作为这篇文章的背景,我尝试参考 Paul Haduk 的“The Haskell School of Expression”用 Applicative 风格编写流体模拟程序,我想用 Applicative 风格表达模拟如下:
其中 Sim 类型表示模拟计算的过程,VArray 表示向量数组 (x,y,z)。X, va 分别是位置、速度和加速度的数组。
定义 a 时会出现在 Applicative 形式上的映射。
我找到了我的问题的一个答案。
毕竟,我的问题是“如何将高阶函数(如 map :: (a -> b) -> [a] -> [b])提升到 Applicative 世界?” 我找到的答案是“使用提升的一阶函数来构建它们”。
例如,“mapX”是用提升的一阶函数(headA、tailA、consA、nullA、condA)定义的,如下所示:
haskell - Applicative IO 是基于 Monad IO 的函数实现的吗?
在“向您学习 Haskell for Great Good!” 作者声称Applicative IO
实例是这样实现的:
我可能是错的,但似乎return
, 和do
- 特定构造(一些含糖绑定(>>=)
)都来自Monad IO
. 假设这是正确的,我的实际问题是:
为什么Applicative IO
实现依赖于Monad IO
函数/组合器?
不是比Applicative
更强大的概念Monad
吗?
编辑(一些澄清):
这种实现违背了我的直觉,因为根据 Typeclassopedia 文章,在可以制作给定类型Applicative
之前Monad
需要它(或者理论上应该)。
postfix-notation - 应用语言可以使用后缀表示法吗?
我一直发现像 Factor 这样的后缀语言比前缀(Lispy 语言)和中缀/后缀语言(所有 C 风格的语言,如果我们同时包含运算符和函数)更具可读性。
与前缀语言不同,您不需要处处使用分隔符。与中缀表示法不同,没有复杂的优先顺序要记住。有什么不喜欢的?
这些语言似乎都是串联的,因此几乎总是基于堆栈的。
是否可以实现一种现代语言,它适用于连接,并且仍然基于后缀?
clojure - 有没有办法逐步显示 Clojure 如何评估函数?
我刚刚开始自学 Clojure。作为补充学习的一部分,我观看了布赖恩哈维关于函数式编程主题的一些加州大学伯克利分校的讲座。在他关于函数式编程的第二讲中,大约在第 34 分钟,他使用了applic函数来展示求值的顺序。Clojure 是否有类似的功能?在我努力了解原因和原因时,查看评估顺序肯定会很方便。
haskell - 没有函子的应用程序
我有一个类型Image
,它基本上是一个 c 数组的浮点数。很容易创建诸如map :: (Float -> Float) -> Image -> Image
或之类的函数zipWith :: (Float -> Float -> Float) -> Image -> Image -> Image
。
但是,我有一种感觉,在这些函数之上提供看起来像应用程序实例的东西也是可能的,从而允许更灵活的像素级操作,例如((+) <$> image1 <*> image2)
或((\x y z -> (x+y)/z) <$> i1 <*> i2 <*> i3)
。然而,天真的方法失败了,因为 Image 类型不能包含除浮点数以外的东西,因此无法实现fmap
。
这怎么可能实现?
haskell - 应用程序组成,单子不组成
应用程序组成,单子不组成。
上面的说法是什么意思?什么时候一个比另一个更可取?
scala - 应用风格的实际用途是什么?
我是一名 Scala 程序员,现在正在学习 Haskell。很容易找到 OO 概念的实际用例和现实世界的示例,例如装饰器、策略模式等。书籍和互联网上到处都是。
我意识到这在某种程度上不是功能概念的情况。恰当的例子:应用程序。
我正在努力寻找应用程序的实际用例。到目前为止,我遇到的几乎所有教程和书籍都提供了[]
和的示例Maybe
。我希望 applicatives 比这更适用,看到他们在 FP 社区中获得的所有关注。
我想我理解了applicatives的概念基础(也许我错了),我已经等待了很长时间的启蒙时刻。但它似乎没有发生。在编程时,我从来没有过高兴地大喊“Eureka!我可以在这里使用applicative!”的时刻。(同样,for[]
和除外Maybe
)。
有人可以指导我如何在日常编程中使用应用程序吗?我如何开始发现模式?谢谢!
haskell - Haskell - Control.Applicative.Alternative 有什么用?
我正在查看Applicative
Haskell 库中的课程并偶然发现Alternative
.
这门课有什么用?谷歌搜索没有发现任何特别有见地的东西。它似乎完全不合适,与 Applicative 包捆绑在一起。
有人可以发布一个可能的场景,你会使用这个类吗?
haskell - Not a Functor/Functor/Applicative/Monad 的好例子?
在向某人解释类型类 X 是什么时,我很难找到恰好是 X 的数据结构的好例子。
因此,我请求以下示例:
- 不是 Functor 的类型构造函数。
- 一个类型构造函数,它是一个 Functor,但不是 Applicative。
- 一个类型构造函数,它是一个 Applicative,但不是 Monad。
- 一个类型构造函数,它是一个 Monad。
我认为到处都有很多 Monad 的例子,但是一个很好的 Monad 例子与前面的例子有一些关系可以完成这幅画。
我寻找彼此相似的示例,仅在属于特定类型类的重要方面有所不同。
如果有人能设法在这个层次结构中的某个地方偷偷地找到一个 Arrow 的例子(它是在 Applicative 和 Monad 之间吗?),那也太棒了!
scala - 我如何使用名称作为应用程序?
Name
是一个Monad
,因此Applicative
也是一个。为什么这段代码不起作用?我是否需要添加任何类型注释才能使其工作?谢谢!