Суммирование списка опций с аппликативными функторами

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

import scalaz._
import Scalaz._

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

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

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

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

редактировать

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

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

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

Ответы на вопрос(6)

Ваш ответ на вопрос