- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在经历https://www.scala-exercises.org/对于猫来说。我想我明白Apply.ap
是什么意思。但我看不到它有任何用途。
有什么区别:
Apply[Option].map(Some(1))(intToString)
和
Apply[Option].ap(Some(intToString))(Some(1))
有人可以解释一下或者给我更多的解释吗?
最佳答案
没有区别
Apply[Option].map(Some(1))(intToString)
和
Apply[Option].ap(Some(intToString))(Some(1))
两者都是Some("1")
。
但是map
和ap
之间有很大的区别。
map
来自类型类 Functor
并具有签名
def map[A, B](fa: F[A])(f: A => B): F[B]
ap
来自类型类 Apply
并具有签名
def ap[A, B](ff: F[A => B])(fa: F[A]): F[B]
因此,map
将函数 A => B
应用于上下文中的值F[A]
while ap
将上下文中的函数 F[A => B]
应用到上下文中的值F[A]
。
例如
Apply[List].map(List(1, 2))(intToString)
是List("1", "2")
while
Apply[List].ap(List(intToString, (i: Int) => intToString(i) + "a"))(List(1, 2))
是List("1", "2", "1a", "2a")
。
fx
为
None
时,
Apply[Option].map(fx)(f)
才可以为 None
> 而当 fx
为 None
时,Apply[Option].ap(ff)(fx)
可以为 None
或ff
是无
。
关于Scala,猫, `ap` 的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64822763/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我有实体: @Entity @Table(name = "CARDS") public class Card { @ManyToOne @JoinColumn(name = "PERSON_I
我正在尝试计算二维多边形的表面法线。我正在使用 OpenGL wiki 中的 Newell 方法来计算表面法线。 https://www.opengl.org/wiki/Calculating_a_S
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 7 年前。 Improve
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我这里有以下 XML: Visa, Mastercard, , , , 0, Discover, American Express siteonly, Buyer Pay
即将发生的 Google 政策变更迫使我们实现一个对话框,以通知欧盟用户有关 Cookie/设备标识符用于广告和分析的情况。我只想向欧盟用户显示此对话框。我不想使用额外的权限(例如 android.p
本文分享自华为云社区《华为大咖说 | 企业应用AI大模型的“道、法、术” ——道:认知篇》,作者:华为云PaaS服务小智。 本期核心观点 上车:AGI是未来5~10年内,每个人都无法回避的技
我有一个与酒精相关的网站,需要先验证年龄,然后才能让他们进入该网站。我使用 HttpModule 来执行此操作,该模块检查 cookie,如果未设置,我会将它们重定向到验证页面。我验证他们的年龄并存储
在欧盟,我们有一项法律,要求网页请求存储 cookie 的许可。我们大多数人都了解 cookie 并同意它们,但仍然被迫在任何地方明确接受它们。所以我计划编写这个附加组件(ff & chrome),它
以下在 C 和/或 C++ 中是否合法? void fn(); inline void fn() { /*Do something here*/ } 让我担心的是,第一个声明看起来暗示函数将被定义
我是一名优秀的程序员,十分优秀!