(MatchError) нет совпадения значения правой стороны в операторе cond

#elixir

#elixir

Вопрос:

У меня есть функция со следующим:

 cond do
  Enum.all?([10,11,12,13,1], fn x -> x in list end) == true -> { 9, [10,11,12,13,1] }
  Enum.all?([23,24,25,26,14], fn x -> x in list end) == true -> { 9, [23,24,25,26,14] }
  Enum.all?([36,37,38,39,27], fn x -> x in list end) == true -> { 9, [36,37,38,39,27] }
  Enum.all?([49,50,51,52,40], fn x -> x in list end) == true -> { 9, [49,50,51,52,40] }
  true -> { -1, [] }
end
 

Для общего понимания я получаю (MatchError) no match of right hand side value: {-1, []} .

Я чувствую, что это что-то простое, но не совсем уверен, чего мне здесь не хватает. Ценю любую помощь!

Комментарии:

1.Ошибка находится за пределами кодовой части, которой вы поделились 🙂 Пожалуйста, покажите, как вы используете то, что получается. Sidenote: == true является noop и может быть опущен внутри cond/1 .

2. @AlekseiMatiushkin Спасибо за совет. В итоге я нашел решение, основанное на вашем предложении.

3. @jjkl, но передайте ответ здесь другим…