如何将元素添加到int列表中?
|x::y::xs-> if(x<=y)
then [x]@(ordina (y::xs))
else [x]::ordina (y::xs)
我试过这个,但它没有用..
答案 0 :(得分:1)
将包含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]]