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