我如何得到 (a, b) => c 来自 a => b =>斯卡拉中的c?
如果我有:
val f : A => B => C
这是以下简写:
val f : Function1[A, Function1[B, C]]
如何获得带有签名的函数g
:(
val g : (A, B) => C = error("todo")
即)
val g : Function2[A, B, C] //or possibly
val g : Function1[(A, B), C]
用f
表示?
If I have:
val f : A => B => C
This is shorthand for:
val f : Function1[A, Function1[B, C]]
How do I get a function g
with the signature:
val g : (A, B) => C = error("todo")
(i.e.)
val g : Function2[A, B, C] //or possibly
val g : Function1[(A, B), C]
in terms of f
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
为了完整性,扩展 retonym 的答案
这两个操作的逆函数也在 Function 对象上提供,因此如果您愿意,您可以向后编写上面的内容
Extending retonym's answer, for completeness
The converse functions for both of these operations are also provided on the Function object, so you could write the above backwards, if you wished
只是为了完善答案,尽管有一个库方法可以执行此操作,但手动执行此操作也可能具有指导意义:
或者一般来说,
Just to round out the answer, although there is a library method to do this, it may also be instructive to do it by hand:
Or in general,
与 Rex Kerr 的答案类似,但更容易阅读。
Similar to the answer by Rex Kerr but easier to read.