-1
如何將一個元素添加到一個int列表中?Ocaml在int列表中的問題
|x::y::xs-> if(x<=y)
then [x]@(ordina (y::xs))
else [x]::ordina (y::xs)
我想這一點,但它沒有工作..
如何將一個元素添加到一個int列表中?Ocaml在int列表中的問題
|x::y::xs-> if(x<=y)
then [x]@(ordina (y::xs))
else [x]::ordina (y::xs)
我想這一點,但它沒有工作..
要包含x
新的int列表添加到int list list
的頭:
# let x = 14 in
let ill = [[3;4]; [5;6]] in
[x] :: ill ;;
- : int list list = [[14]; [3; 4]; [5; 6]]
你也可以寫這:
# let x = 14 in
let ill = [[3;4]; [5;6]] in
[[x]] @ ill ;;
- : int list list = [[14]; [3; 4]; [5; 6]]
但這需要少量的不必要的工作。
作爲一條評論,您的if
的兩個分支看起來像他們試圖做同樣的事情。如果你想要的結果是[[14; 3; 4]; [5; 6]]
你需要編寫更多的代碼來解構int list list
。
# let x = 14 in
let ill = [[3;4]; [5;6]] in
match ill with
| [] -> [[x]]
| h :: t -> (x :: h) :: t ;;
- : int list list = [[14; 3; 4]; [5; 6]]