我正在尝试实现一个功能
ziprev : 'a list -> 'b list -> ('a * 'b)list
- ziprev [1,2,3,4] [10,20,30,40];
val it = [(1,40),(2,30),(3,20),(4,10)] : (int * int) list
使用zipWith和库中的List.rev。
我在功能方面遇到了麻烦。尝试:
fun ziprev xs ys = List.zipWith(List.rev(fn(a,b) => (a,b)::[]),xs,ys);
运算符:'Z列表操作数:'Y *'X - > ('Y *'X)列表
答案 0 :(得分:1)
SML基础库中没有List.zipWith
,所以我不知道你从哪里来的那个;并且List.rev不接受函数作为参数,它将列表作为参数
- rev;
val it = fn : 'a list -> 'a list
我想你要完成的是ListPair.zip
而不是
- fun ziprev xs ys = ListPair.zip(xs, rev ys);
val ziprev = fn : 'a list -> 'b list -> ('a * 'b) list
- ziprev [1,2,3,4] [10,20,30,40];
val it = [(1,40),(2,30),(3,20),(4,10)] : (int * int) list