Как в F# map2 обрабатывает неравномерные длины списков?

Как функция map2 обрабатывает списки разной длины?

e.g.

let list1 = [1; 2; 3]
let list2 = [4; 5; 6; 7]
let sumList = List.map2 (fun x y -> x + y) list1 list2
printfn "%A" sumList

Кажется странным, что это не упоминается в документации.


person sdgfsdh    schedule 01.10.2015    source источник
comment
List.map2 выдает исключение, если вы передаете ему списки разного размера. Это легко проверяется в ФСИ.   -  person Bartek Kobyłecki    schedule 01.10.2015


Ответы (1)


Несмотря на то, что в документации это не упоминается, можно легко проверить исходный код, чтобы узнать, что происходит, и детали реализации.

Как видно из ссылки, при передаче списка разного размера invalidArg вызывается, выдавая ArgumentException с сообщением, хранящимся в ресурсе listsHadDifferentLengths.

person William Barbosa    schedule 01.10.2015