https://elixir-lang.org/getting-started/pattern-matching.html#the-pin-operator 左辺の変数手前につけることで、[[パターンマッチ (Elixir)|パターンマッチ]]の際に値が変数に再代入されるのを防ぐ[[Elixir]]の演算子。 [[ピン演算子]]を使わないと、以下のコードは`x`に10を代入するコードになる。 ```elixir > x = 1 1 > [x, 2, 3] = [10, 2, 3] [10, 2, 3] > x 10 ``` [[ピン演算子]]を使うと、以下のコードは**左辺の変数値を展開したうえで、それがマッチするかを確認するコード**になる。つまり `[1, 2, 3] = [10, 2, 3]`の[[マッチ演算子 (Elixir)|マッチ演算子]]と同じである。 ```elixir > x = 1 1 > [^x, 2, 3] = [10, 2, 3] ** (MatchError) no match of right hand side value: [10, 2, 3] ```