2021-01-01から1ヶ月間の記事一覧
環境 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/…
タイムゾーンの変更 JSTにする ln -sf /usr/share/zoneinfo/Japan /etc/localtime デフォルトユーザー削除 userdel ec2-user
令和最新版のPHPは一味違うぜ 概要 すごく昔に、PHPで文字列を1文字ずつの配列に変換する方法について記事を書いた。 thr3a.hatenablog.com このときはメモ程度だったが、実は今でもそこそこPVがある。 流石に令和だしPHP7どころか8も出たしなにかアップデ…
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,…
環境 Mac OS rbenv + ruby-build 結論 readline入れろ brew install readline が、残念ながらこれだけだとライブラリのパスがruby-buildから見えないので、 RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)" rbenv install 3.0.0 する…