我想做一个这样的功能:
('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
Error2
设append_list ( A,b)(A:'a list),(B:'a list) = (A):a、b::B ); 错误:变体类型列表没有构造函数A
我怎样才能使这个函数正确?
发布于 2017-02-28 03:15:44
我找到了这个问题的答案,简直是胡说八道。
A, B不能用作变量的名称。
发布于 2017-03-03 02:39:02
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'])https://stackoverflow.com/questions/42499388
复制相似问题