【发布时间】:2023-04-10 06:48:01
【问题描述】:
我是否可以在不使用递归的情况下在 OCaml 中的给定元素之后截断列表?
let truncate (elt: 'a) (q: 'a queue) : unit =
我可能会想到如何使用嵌套模式匹配来做到这一点......寻找没有rec的更好方法
【问题讨论】:
-
这个问题很难搞清楚。 OCaml 中没有
'a queue类型,也没有任何理由避免使用递归。也无法将任意大小的结构与模式匹配。 -
类型 'a queue 是 'a list ref?它本质上是一个列表?还有另一种类型的队列,它是一个头尾可变的记录: type 'a queue = { mutable head: 'a qnode option; mutable tail: 'a qnode 选项 }