Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

Elixir

Elixirで遊んでみる(11)

13章はまだまだ続く。13.11から。全開までで、GitHubから取得したIssueのデータは、マップの形にまでなった。 今度はこれをテーブルの形に整形する。 文字列の表にしたいから、まず、各列の文字列の最長幅を知る必要がある。 そのために、データをいったん列…

Elixirで遊んでみる(10)

13章の続き。 さて、GitHubのAPIからJSONが返ってきているので、これを処理してやる必要がある。 JSONのライブラリとしてはpoisonを使うみたい。 hex.pmに行って検索し、depsの記述をコピってmix.exsに入れる。 P.156の記述を元に、Issues.GithubIssues.hand…

Elixirで遊んでみる(9)

13章はビルドツールのMixの話。最近は言語ごとにビルドツールがあるのが当たり前になった。 このタイミングで自分のMacにElixirをインストールすることにする。brew install elixirするだけ。 いろいろ依存で入るので、そこそこ時間がかかる。というかPython…

Elixirで遊んでみる(8)

12章は制御フロー。といっても、パターンマッチとガード説で制御フローの大半を作ってしまうので、Elixirでは登場頻度は低い。 ifは今までの構文と同じようにdo:を指定できる。さらにelse:も指定できる。 この構文の特徴をもう一度確認しておこう。 iex> if(…

Elixirで遊んでみる(7)

11章は文字列。 Elixirで面白いのは、シングルクォートとダブルクォートで全く違うものを表すこと。 ダブルクォートがいわゆる文字列で、シングルクォートは文字コードのリスト。内部表現は全然違う。 というか、ワイルドなことにElixirは文字列として出力可…

Elixirで遊んでみる(6)

9章は2ページしかない。Elixirには型みたいなものが2つのレベルである。 プリミティブなデータ型と、モジュールとそれが提供する関数が規定するレベルでの型だ。 あるモジュールはプリミティブなデータ型に加えてある構造を要求する。 例えば、ListもKeyword…

Elixirで遊んでみる(5)

7章は「リスト」。いわゆるconsリストについて説明している。まあ、いいでしょう。理解はしてる。使えるかはアレだけど。 8章は「マップ、キーワードリスト、セット、構造体」。盛りだくさんだ。 マップのパターンマッチの仕方は慣れる必要がありそうだ。 ie…

Elixirで遊んでみる(4)

6章は「モジュールと名前付き関数」である。 ここでやっと普通の関数定義の説明がある。 で、Rubyっぽいこんな感じだ。でも、Rubyならdoはいらない defmodule Times do def double(n) do n * 2 end end しかし、do...endはシンタックスシュガーで、do: (...)…

Elixirで遊んでみる(3)

5章は無名関数。普通の関数やってないのに、無名関数からやるという(笑) 無名関数は変数に束縛して使う。関数呼び出しの時に.がいるのがポイント iex> sum = fn (a, b) -> a + b end #Function<43.79398840/2 in :erl_eval.expr/5> iex> sum.(1, 3) 4 iex> s…

Elixirで遊んでみる(2)

本を先に進んでみよう。 2章はパターンマッチ。未だに慣れない。とりあえず=でマッチ出来る。 左側に変数があると、マッチすると束縛が起きる。 左側の変数の値をマッチに使いたい場合は^を付ける。 iex> a = 1 1 iex> [^a, b] = [2, 3] ** (MatchError) no …

Elixirで遊んでみる(1)

年末年始、「プログラミングElixir」の第2版を買ったので、ちょっと遊んでみよう プログラミング Elixir(第2版)作者:Thomas,Daveオーム社Amazon ElixirのインタラクティブシェルIExを実行する。イマドキはDockerだよねと。P4を写経する。 > docker run -it -…