Как я могу назвать сумму списка кортежей? - PullRequest
0 голосов
/ 13 ноября 2018

Я сделал список кортежей, но не могу найти сумму списков. Нужно ли сделать функцию для суммы или я могу вызвать каждый список fst snd в коде суммы?

let (startBoard : board) = ([0; 3; 3; 3; 3; 3], [0; 3; 3; 3; 3; 3])

Как узнать сумму списков? Я пытался создать функцию суммирования и вызывать fst и snd, но не могу заставить ее работать ...

let sum1 (fst : int list) : int = 
let s = List.sum fst

Надеюсь, я все прояснил :)

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Не знаю точно, что такое «доска», но это должно сработать.

let sum (b: board) = List.sum (fst b), List.sum (snd b)
0 голосов
/ 13 ноября 2018

fst - это встроенная функция, которая возвращает первый элемент кортежа второго размера. Ваш пример sum1 функция называет свой первый параметр как fst, что, вероятно, не то, что вы хотите.

Попробуйте что-то вроде этого:

let sum1 (startBoard : board) = List.sum (fst startBoard)

И с силой карри это можно сократить:

let sum1 = List.sum << fst
...