scala - 如何在 Scala 中定义提升函数
问题描述
有人可以帮我,如何定义这个函数:
def lift[A, B, T](op: (T,T) => T)(f: A => T, g: B => T): (A,B) => T = /* ... */
解决方案
也许
def lift[A, B, T](op: (T,T) => T)(f: A => T, g: B => T): (A,B) => T =
(a: A, b: B) => op(f(a), g(b))
这使
def op(a: Int, b: Int): Int = a + b
def f(x: String): Int = x.toInt
def g(x: List[String]): Int = x.length
lift(op)(f,g)("41", List("2"))
// Int = 42
推荐阅读
- javascript - 将子组件中单击的元素的值传递到父组件中的按钮中
- node.js - 如何将行分配给 node.js 上的变量?
- pytorch - 在 LSTM 中增加层数会增加 Pytorch 中的输入维度?
- java - 查找其中包含 if 语句的嵌套循环的大 O 表示法
- flutter - 在大滚动上,颤动中仅移动 1 个索引,就像颤动中的 instagram
- kubernetes - Kubernetes Autoscaling 使用 VPA - 关闭或自动更新模式?
- typescript - 使用单独的存储库在前端和后端之间共享类型
- python - Pycharm 的 Python 环境问题
- javascript - 使用createApp函数注入时Vuejs3组件未知错误
- android - 如何修复“错误:未找到 pubspec.yaml 文件”。在颤振 w/Android 工作室?