もやもやエンジニア

IT系のネタで思ったことや技術系のネタを備忘録的に綴っていきます。フロント率高め。

2015-08-01から1ヶ月間の記事一覧

Elixir 入門 その12 - alias, require and import

リソースの再利用を容易にするための仕組みとして alias, require ,importがある arias モジュールにaliasをつけることができる defmodule Math do # Math.Listはモジュール内であればListで呼ぶことができるようになる。 # 本来のListは ` Elixir.List ` で…

Elixir 入門 その11 - IO and the file system

The IO module # 標準出力 iex> IO.puts "hello world" hello world :ok # 標準入力 iex> IO.gets "yes or no? " yes or no? yes "yes\n" # :stderrをarg1に与えると出力先が標準エラーになる iex> IO.puts :stderr, "hello world" hello world :ok The File…

Elixir 入門 その10 - Processes

Process Elixirではすべてのコードはプロセス上で動作している。プロセスはお互いに分離していて、メッセージパッシングでやりとりする ElixirのプロセスはOSのプロセスと混同されるべきではない。Elixirのプロセスは多くの他のプログラミング言語のスレッド…

Elixir 入門 その9 - Enumerables and Streams

Enumerables ElixirはEnumerablesなデータを処理するのにEnumモジュールを提供している EnumはListやMapなど異なるデータ型を扱うように設計されている なのでデータによって特有の操作、例えばListの特定の位置に要素を追加したいというような場合はListモ…

Elixir 入門 その8 - Recursion

Loops through recursion Elixirでは他の関数型言語と同じように繰り返し処理を行うためのForやWhileが無い。 再帰を使って表現する。パターンマッチを効果的に使うことで可読性の高い再帰を表現できる。 defmodule Recursion do # ガードによって n が 1 以…

Elixir 入門 その7 - Modules

Compilation defmodule マクロでモジュールを定義できる defmodule内のdefでメソッドを定義できる defmodule Math do def sum(a, b) do a + b end end elixircコマンドでコンパイルできる > elixirc math.ex コンパイルすると Elixir.Math.beam という名前の…

Elixir 入門 その6 - Keyword lists, Maps

Elixir では連想配列を表現する手段として keyword list と mapの2つがある。 Keyword list 特定の条件のtupleのリストはkeyword list として扱われる tupleの要素数が2 1つ目の要素が atom listの拡張みたいな存在なので、listの特徴をそのまま受け継いでい…

Elixir 入門 その5 - Binaries, strings and char lists

UTF-8 and Unicode stringはUTF-8エンコードされたbinary byte-sizeとcode pointについて iex> string = "hełło" "hełło" # byte sizeは7。ł以外のコードポイントは0 ~ 255以内 = 1byteだけど ł は322で表現するためには2byte分必要だから iex> byte_size st…

Elixir 入門 その4 - case, cond and if

case パターンマッチを使った条件式を書くことができる。 例えばHTTPのレスポンスのパターンマッチは以下のように書くことができる。 1行目にマッチすると評価値のbodyの値(この場合はHello World !!)がcase内のbodyに束縛される。 最後の _ は何もマッチ…

Elixir 入門 その3 - パターンマッチの基本

パターンマッチの基本 The match operator Elixirにおける = はmatch operator 代入ではなくパターンマッチにおける束縛を意味する # これは一見代入しているように見える iex> x = 1 1 # xに1が束縛された状態で逆にしても通る iex> 1 = x 1 # これは通らな…

Elixir 入門 その2 - 演算子

++ -- 2つのリストを結合したり差分をとったり iex> [1,2,3] ++ [4,5,6] [1,2,3,4,5,6] iex> [1,2,3] -- [2] [1,3] iex> [1,2,2,3] -- [2] [1,2,3] iex> [1,3,2] -- [2,3] [1] <> 文字列のconcat 文字列同士でないと怒られる iex> "foo" <> "bar" "foobar" i…

Elixir 入門 その1 - REPL と 基本型

ElixirのページのGetting Startedを適当にサマってます。自分用メモ。間違ってたらコメントくらさい REPL iexで起動。 hでHelp見える。 h is_boolean/1 基本型 Integer 1 # integer 1.0 # float Booleans true / false Atoms symbolみたいなの。名前をそのま…