SML函数式编程更高阶函数?

时间:2013-01-29 18:33:47

标签: functional-programming sml higher-order-functions

我需要实现一个函数

 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

使用我已创建的功能:

- zipW (fn (x, y) => x + y) [1,2,3,4] [10,20,30,40];
val it = [11,22,33,44] : int list

和库中的List.rev。 我不知道如何用两个库做一个函数。有什么建议吗?

1 个答案:

答案 0 :(得分:3)

提示1:

ziprev的结果与

进行比较
List.zip [1,2,3,4] [10,20,30,40]

你应该看到一个相当明显的模式。

提示2:

List.rev 撤消列表。

提示3:

您可以使用zipW来实施List.zip吗? 也就是说,如果你想说

normalzip xs ys = zipW something xs ys

something会是什么?