タグ

ブックマーク / qiita.com/naoya@github (3)

  • Elixir のパターンマッチを攻略しよう - Qiita

    Elixir にあって RubyJavaScript のような言語にない特徴といえば 軽量プロセス (+ OTP周り) パターンマッチ の2点が大きく、その他の部分というのはだいたい「あの言語のこれだな」という風に対応させて理解できる(パターンマッチを実装した他の関数型言語になれてる人にとっては別かもしれないが)。 特に後者のパターンマッチの方は Elixir の文法の多くの部分の基礎になっている。従って、主観的にはパターンマッチさえ理解できれば Elixir の半分以上は理解できたと思っていいんじゃないかと思っていたりする。 というわけでカッとなってパターンマッチについて書いてみる。 パターンマッチとは パターンマッチの例で、いきなり {x, y} = {1, 5} とかいう例を見せられても「変数扱うのに便利な記法か何かですかね? (ES6 の Destructuring assi

    Elixir のパターンマッチを攻略しよう - Qiita
    kjozawa
    kjozawa 2016/04/03
  • 『Programming Elixir』より "Think Different(ly)" - Qiita

    あの Dave Thomas が書いた『Programming Elixir』を買ったのでぼちぼち読んでいる。 Chapter 1. に Elixir の特徴を巧みに表現した文章があってカッとなったので、引用しておきたい。 Object orientation is not the only way to design code Functional Programming need not be complex or mathematical. The foundations of programming are not assignments, if statements, and loops. Concurrency does not need locks,semaphores, monitors, and the like. Processes are not necessaril

    『Programming Elixir』より "Think Different(ly)" - Qiita
    kjozawa
    kjozawa 2016/04/03
  • Elixir のプロセスを使ってフェイルセーフなアプリケーションを作る ─ 失敗は恐れず泥水にダイブ - Qiita

    [翻訳] Elixirのプロセスアーキテクチャ または私は如何にして心配するのを止めてクラッシュを愛するようになったか にもあるように Elixir においては例外処理は、それを頑張ってなんとかしようとするのではなく、軽量プロセスのコンテキストでむしろすすんでクラッシュさせてしまえ、というのが良い作法である。 クイズ番組で ○ か × か答えを選んで壁に突っ込んだ先に、正解ならクッションが、不正解なら泥水があるという企画があるが、それに喩えるなら 泥水だろうが何だろうが躊躇せずダイブしろ! というのが Elixir 流 (俺調べ) である。 もとい、クラッシュさせてどうするのかというと Supevisor を使って、別プロセスから該当プロセスを監視しておいて、クラッシュしてもアプリケーション全体としては間違いなく動いている状態を保証するのが正しい。 カッとなってちょっとそのための例を書いて

    Elixir のプロセスを使ってフェイルセーフなアプリケーションを作る ─ 失敗は恐れず泥水にダイブ - Qiita
    kjozawa
    kjozawa 2016/04/03
  • 1