2013-02-12 2 views
0

В SML, как вы можете использовать функцию карты, которая принимает два списка и возвращает список каждого элемента в одном списке, умноженный на соответствующий элемент в другом списке?Как использовать карту с двумя списками?

Я попытался

fun mult_list v1 v2 = map (fn (x, y) => x * y) (v1, v2); 

, но это не работает ...

ответ

3

Вы хотите ListPair.map:

fun mult_list v1 v2 = ListPair.map (fn (x, y) => x * y) (v1, v2) 

, который, кстати, может быть сокращено до

fun mult_list v1 v2 = ListPair.map op* (v1, v2) 

Вы можете Вместо этого используйте ListPair.mapEq, если вы хотите принудительно создать исключение, если списки не имеют одинаковой длины.

Смежные вопросы