Сопоставление с образцом списка эликсира ~ получить x после константы с сопоставлением с образцом списка

Обрабатывает ли Elixir каким-либо образом совпадающие значения относительно констант? Примером этого может быть:

Все примеры являются псевдосинтаксисом идеи

  • (значение после) 3 = x
  • iex> [ _ | [ 3 | [ x | _ ] ] ] = [1,2,3,4,5,6,7] // x = 4
  • (значение перед 6) = x
  • iex> [ _ | [ x | [ 6 | _ ] ] ] = [1,2,3,4,5,6,7] // x = 5
  • (подсписок значений от 3 до 6) = x
  • iex> [ _ | [ 3 | [ x | [ 6 | _ ] ] ] ] = [1,2,3,4,5,6,7] // x = [4,5]
  • (подсписок из 3 значений после 4) = [a, b, c]
  • iex> [ _ | [ 3 | [ [a,b,c] | _ ] ] = [1,2,3,4,5,6,7] // x = [5,6,7]

К сожалению, большинство книг и онлайн-документации охватывают только абсолютное позиционирование от первого индекса, например N элементов из головы через [ head | tail ], но по мере того, как целевое значение удаляется от первого элемента, это становится глупо с синтаксисом типа [ _ | [ _ | [ _ | [ x | _ ] ] ] ], чтобы получить 4-й элемент в список.

Есть ли какой-либо синтаксис для сопоставления относительных индексов списка? Примером неправильного, но концептуально правдоподобного синтаксиса может быть получение последнего индекса в списке через [ _ | [ x | [] ] ] или получение значения после индекса 3 через [ _ | [ 3 | [ x | _ ] ] ]

Предоставьте пример ввода и ожидаемый результат. Очень сложно понять, чего вы пытаетесь достичь.   —  person occurr    schedule 26.01.2017

Это яснее с ожидаемыми результатами? Я полностью осознаю, что этот код недействителен, но должен продемонстрировать цель.   —  person occurr    schedule 26.01.2017

Источник: ledsshop.ru

Стиль жизни - Здоровье!