Как использовать карту с двумя списками?

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

Я старался

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

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


sml
person omega    schedule 12.02.2013    source источник


Ответы (1)


Вы хотите 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, если вы хотите вызвать исключение, когда списки имеют разную длину.

person Andreas Rossberg    schedule 12.02.2013