出于示例的目的,我们假设一切都是整数。此外,我知道编译器会发疯,因为函数不能解决所有情况。
假设我有这两个功能:
let f1 = function
| a -> b;;
let f2 = function
| c -> d;;
我有什么方法可以做一个这样做的功能:
| a -> b;;
| c -> d;;
将f1和f2放在一起(采用类似于连接2个列表的样式),而不将它们明确地硬编码在一起?
答案 0 :(得分:2)
let concat_funs f1 f2 x =
try f1 x
with Match_failure _ -> f2 x
它是关联的,但不是可交换的。
答案 1 :(得分:0)
对于家庭作业,我认为规则是你应该展示一些你尝试过的代码并说明出现了什么问题。否则,如果不解决问题就很难评论。
但是,我认为f1
和f2
都是部分的这一事实可能是一个非常大的暗示,假设我理解你正在寻找的东西(一个更高阶的函数可以对f1
和f2
)类似的任何两个函数执行此操作。