-2

我正在尝试实现一个功能

 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) 列表

4

1 回答 1

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
于 2013-01-31T22:53:53.957 回答