我想创建一个像这样的函数:
('a, 'a) >>>> ('a list, 'a list) >>>> ('a list, 'a list)
例如,
append_list (1, 2) ([10, 3], []) >>>> ([1, 10, 3], [2])
我有两个错误
ERROR1
让append_list(a,b)(A,B)=
(a :: A,b :: B);;
错误:未绑定的构造函数A
误差2
让append_list(a,b)((A:'列表),(B:'列表))=
(a :: A,b :: B);;
错误:变体类型列表没有构造函数A
如何正确使用此功能?
答案 0 :(得分:0)
我得到了问题的答案,这是一个废话。
A, B
不能用作变量名称。
答案 1 :(得分:0)
let append_list (a,b) (l1,l2)= (a::l1,b::l2) ;;
Or
let append_list ((a:'a),(b:'b)) ((l1:'a list),(l2:'b list))= (a::l1,b::l2) ;;
测试:
# append_list (1,2) ([10;3],[]);;
- : int list * int list = ([1; 10; 3], [2])
# append_list (1,'2') ([10;3],['4']);;
- : int list * char list = ([1; 10; 3], ['2'; '4'])