Суммирование списка опций с аппликативными функторами
У меня есть список [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. Он должен работать так же, как Исключения, когда мне не нужно проверять это в моей функции, но пусть вызывающий позаботится об этом.