Суммирование списка параметров с помощью аппликативных функторов

У меня есть List [Option [Int]], и я хочу суммировать его, используя аппликативные функторы. Из [1] я понимаю, что это должно быть что-то вроде следующего

import scalaz._
import Scalaz._

List(1,2,3).map(some(_)).foldLeft(some(0))({
    case (acc,value) => (acc <|*|> value){_+_}
})

, однако я просто не могу понять, как это правильно написать. Я был бы рад если бы кто-нибудь мог мне помочь с этим.

Большое спасибо

[1] Как объединить значения Option в Scala?

Edit

Спасибо за все отличные ответы.

Если в list, я хочу, чтобы он возвращал None. Я пытаюсь заменить Null / Exception на Option / Either и посмотреть, смогу ли я создать какой-нибудь полезный код.

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

9
задан Community 23 May 2017 в 12:17
поделиться