Обрабатывает ли 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
Источник: