elixir – 変数スコープとwith

さて、スコープと言うのは大事だ。

elixirはJavaScriptと同じく、関数が一つのスコープになるようだ。

前回のマップとキーワードリストでも、keyが重複してるのは{}ブレイス内だけでの判断になるため、別のブレイス内で同じkeyが使えることがわかった。

elixirはレキシカルスコープで、スコープの範囲は基本的に関数の本体部分とみなされる

ということらしい。

“elixir – 変数スコープとwith” の続きを読む

elixir – マップ

コレクションのまとめ

今まで試してみたコレクション系は以下になる。

  • リスト
    • 連続した値の集合(コンスセル)
    • ランダムアクセスには向かない
    • タプルなどを複数持たせる場合等に使用(おそらくは)
  • タプル
    • 連続した値の集合(メモリ上で連続)
    • ランダムアクセスに強い
    • 関数の戻り値などで使用(おそらくは)
  • キーワードリスト
    • keyとvalueのペア
      • タプルをリストでまとめる
    • コマンドラインやオプションの設定などで使う(おそらくは)

さて、ではマップとはなんだろうか。

“elixir – マップ” の続きを読む

elixir – キーワードリスト

一旦まとめよう

  • 一般的なスクリプト言語での配列は、elixirではタプルを使う
    • タプルは大体4~5個の要素で使うことが多い
    • タプルはインデックスを指定して要素を抜き出すことができる(elem/2)
    • タプルは連続した状態でメモリに格納されるので処理が速い
  • elixirのリストは一般的な配列ではない
    • リストはHeadとTailという2つの要素で構成されている
    • Headは1つの値、Tailはリストで構成されている
    • リスト内の連続した値はこの構造の入れ子になっている
    • 特定のインデックスの値を取得する関数は無い
    • 何に使うのか不明

正直、このリストってのが何のためにあるのかが分かってないが、おそらくelixir流のスクリプトを書いていくうちに、『お、ここはリストを使うべきだな』ってなるともうので、今の時点ではこれ以上深く突っ込まないようにする。

“elixir – キーワードリスト” の続きを読む

elixir – リストとタプル

Pythonの勉強してたときにタプルってのが出てきて、はて?ってなった。
何のためにつかうのかわからないからだ。

Pythonだと上記のようになる。
そして誰もが一発で理解できてるであろうリストは、以下のようになる。

“elixir – リストとタプル” の続きを読む

elixir – ピン演算子とガベージコレクタ

ピンとは

elixirにはピン演算子というものがあって、これがいまいちピン(!)と来ない。

というわけでいろいろ試してみた。

ピン演算子^は変数の再束縛ではなく以前にマッチした値とのマッチングをしたい場合に使われます

この一文を呼んで、『?』ってなったので、早速試してみる。

“elixir – ピン演算子とガベージコレクタ” の続きを読む

elixir – インストールして試す

環境の説明

インストールに先立って、俺が使ってる環境を説明するよ。

項目 内容
サーバ VirtualBoxのVM
OS Fedora 24 サーバの最小構成

実はこのVM、ヘッドレスモードでバッチ作って、それをWindows起動時に実行するようにしてるので、いつでもWindowsからLinuxを使うことができるんだ。

ちょっと前にWindowsでUbuntuとかいう(ゆとりに人気の)OSのシェルが使えるようになったらしいけど、Ubuntuってあれでしょ?本家と日本の間で言語の問題が起き、コミュニティが分裂したんだっけ?

“elixir – インストールして試す” の続きを読む

elixir – とりあえず始めて見る

言語に関して

PHPってバージョン3のときから使ってるんだけど、もういい加減飽きてるわけですよ。でも結局使い慣れたPHPで仕事とかしちゃったり。

PHPをDisってる人は多いけど、俺はこう思うね。

大嫌いな奴が正論をいっても、そいつが嫌いだから正論を認めず、間違ってるってことにしてしまうような、かわいそうな人

“elixir – とりあえず始めて見る” の続きを読む