4
我试图实现在F#队列中的队列类型到目前为止,这是我,但我认为它的作用更像是一个堆栈:实现在F#
type 'a queue = NL| Que of 'a * 'a queue;;
let enque m = function
|NL -> Que(m, NL)
|Que(x, xs) -> Que(m, Que(x, xs));;
let rec peek = function
|NL -> failwith "queue is empty"
|Que(x, xs) -> x;;
let rec deque = function
|NL -> failwith "queue is empty"
|Que(x, xs) -> xs;;
let rec build = function
| [] -> NL
| x::xs -> enque x (build xs);;
的操作是,除了做工精细enque,我想这样做,它会在队列的后面添加一个新元素,而不是前面。