elixir
環境 Elixir 1.x コード Elixirのパイプ演算子便利なんだけど、途中の変数変化を把握しづらい。そこでpryを使ってブレークポイントを仕掛ける。 defmodule Example do def pipe do 1..10 |> Enum.map(&(&1 * &1)) |> Enum.filter(&rem(&1, 2) == 0) |> (fn(x…
環境 Elixir 1.x 基本的な読み書き File.write/2 で書き込み、 File.read/1 で読み込みできる。 iex> File.write "sample.txt", "Hello" :ok iex> File.read "sample.txt" {:ok, "Hello"} 読み込んだときに2要素のタプルを返してくるのがポイント こういう…
condを使う場合 defmodule FizzBuzz do def upto(n) do cond do rem(n, 15) == 0 -> "FizzBuzz" rem(n, 3) == 0 -> "Fizz" rem(n, 5) == 0 -> "Buzz" true -> n end end end for n <- 1..100 do IO.puts FizzBuzz.upto(n) end パターンマッチを使う場合 defm…
環境 Elixir 1.x 結論 無名関数の場合はドット(.)が必要 名前付き関数の場合は不要 違いについて 他の言語やったあとにElixirやってると以下のようなエラーをよく起こす。 iex(1)> add = fn a, b -> a + b end #Function<12.99386804/2 in :erl_eval.expr/…
Elixirで頻出する Enum.each/2 だが、書き方色々あって全然見れなかったのでメモ。 基本形 Enum.each(["one", "two", "three"], fn(x) -> IO.inspect(x) end) # 出力 # "one" # "two" # "three" 省略記法を使う Elixirでは無名関数を&を使って省略記法で書け…
環境 Elixir 1.x やりたいこと 例えば、以下のようなMapがあったとする。 user = %{name: "Taro", gender: "man", city: "Tokyo"} ここのcityのTokyoの値を変更したり、あたらしくidのキーを追加したい。 存在するキーを更新する場合 パイプ文字を使った new…
コード add_one = &(&1 + 1) # add_one = fn n -> n + 1 end IO.puts add_one.(44) &1 &2は 最初の引数、2番めの引数と対応する &(&1 + &2) は fn p1,p2 -> p1 + p2 endと同義
久々にカテゴリ増やした気がする(怠慢 環境 Elixir 1.6 コード Elixirの教科書本ことプログラミングElixirの演習問題でわからなかったのでメモ プログラミングElixir 第2版作者:デイブ・トーマス発売日: 2020/12/14メディア: Kindle版 Tuple.to_list({1234,…