動かざることバグの如し

近づきたいよ 君の理想に

2021-01-10から1日間の記事一覧

Elixirでパイプ中にpryでデバッグしたい

環境 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でファイルの読み書きまとめ

環境 Elixir 1.x 基本的な読み書き File.write/2 で書き込み、 File.read/1 で読み込みできる。 iex> File.write "sample.txt", "Hello" :ok iex> File.read "sample.txt" {:ok, "Hello"} 読み込んだときに2要素のタプルを返してくるのがポイント こういう…

ElixirでFizzBuzz

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で関数呼び出し時にドットを付ける/付けないの違い

環境 Elixir 1.x 結論 無名関数の場合はドット(.)が必要 名前付き関数の場合は不要 違いについて 他の言語やったあとにElixirやってると以下のようなエラーをよく起こす。 iex(1)> add = fn a, b -> a + b end #Function<12.99386804/2 in :erl_eval.expr/…