タグ

ブックマーク / www.ymotongpoo.com (7)

  • Introduction | Learn You Some Erlang for Great Good!

    25.1. appupとrelupのしゃっくり¶ コードのホットローディングは、Erlangの中でも最も簡単な事の1つです。 再コンパイルして、完全修飾関数呼出し(fully-qualified function call)をして、それで完了です。 しかしながら、これを正しく安全に行うのはもっとずっと難しいのです。 コードをリロードすることを難しくしている、非常に単純な課題が1つあります。 素晴らしいErlangプログラマの脳みそを使って、gen_serverのプロセスを考えてみましょう。 このプロセスは、1種類の引数だけ受け取る handle_cast/2 関数を持っています。 この関数を異なる種類の引数を取るように更新して、コンパイルして、プロダクション環境にプッシュします。 すべて順調に動いていますが、停止させたくないアプリケーションがあるので、プロダクション環境のVMにロードして実

  • Introduction | Learn You Some Erlang for Great Good!

    18.1. 有限ステートマシンとはなにか¶ 有限ステートマシン(FSM)は実際には機械ではなく、有限個の状態を持ったものです。 私は有限ステートマシンを理解するときは、グラフやダイアグラムで理解したほうが簡単だと気づきました。 例えば、次の図は(とても馬鹿な)犬を状態マシンとして簡潔にダイアグラムにしたものです。 ここで、犬には3つの状態があります。座る(sitting)、吠える(barking)、しっぽをふる(wagging)の3つです。 異なるイベントや入力が状態を変更させるでしょう。 もし犬がおとなしく座っているときに、リスを見かけたら、犬は吠え始め、あなたが撫でてあげるまで吠えるのを辞めないでしょう。 一方で、犬が座っているときにあなたが撫でてあげたら、何が起きるかはわかりません。 Erlangの世界では、犬はクラッシュします。(そしていずれスーパバイザによって再起動されます。)

  • Introduction | Learn You Some Erlang for Great Good!

    8.1. 関数型っぽくいこう!¶ すべての関数型プログラミング言語での重要なのは定義した関数を持ってきて他の関数へパラメータとして渡すことができる、という点です。 そのあと、この関数パラメータを関数内の他の変数と同じように変数に束縛して利用出来るのです。 このように関数を渡される関数を 高階関数 といいます。 高階関数はErlangにおいて強力な抽象化の手段であり、最も習得しがいのあるツールの一つです。 また、この概念は数学に端を発していて、主に ラムダ計算 と呼ばれています。 ラムダ計算については深入りしません。なぜなら理解するのは厳しいと感じる人もいますし、いささか範囲外だからです。 しかし、数字も含めて、すべてが関数であるシステムとして簡単に定義してみようと思います。 すべてが関数なので、関数は他の関数をパラメータとして受け入れなければならず、もっと多くの関数で操作できなければいけま

  • Introduction | Learn You Some Erlang for Great Good!

    15. 並列アプリケーションを設計する¶ すべていい感じです。概念は理解されたと思います。 が、再度いいますが、このの最初からやってきたことは全部おもちゃです: 計算機、ツリー、ヒースローからロンドン、などなど。 そろそろ何か楽しくてもっと役に経つことをすることです。 並列Erlangで小さいアプリケーションを書きましょう。 アプリケーションは小さく行を基にしているけれど、それでいて役立つしそれなりに拡張できるものになります。 私はいくらか考えが体系立っていない人間です。 宿題を忘れたり、アパートの周りですることを忘れたり、このや、仕事、ミーティング、約束などなど良く忘れます。 結局タスクであふれた何十ものリストを書く羽目になって、それでもなおやり忘れたり、見直しを忘れたりします。 希望的にはあなたにもすべきことのリマインダーが必要であってほしいです。(しかしあなたの場合は私ほど欲しい

  • 33. 型仕様とErlang 33.1. PLTは最高のサンドイッチ | Learn You Some Erlang for Great Good!

    33.1. PLTは最高のサンドイッチ¶ 型(あるいはそれを欠いています) で、Dialyzerという、Erlangの型エラーを検知するツールを紹介しました。 この翔では、Dialyzerに完全に焦点を当てて、実際にErlangでの型エラーの検知を行う方法やその他の矛盾を検知するためのDialyzerの使い方を紹介します。 なぜDialyzerが作られたかを見ていくことから始めて、その次にその指針となる原則は何か、そして型に関連するエラーを検知する性能、最後にその使い方の例を紹介します。 Dialyzerは、Erlangコードを解析するときに非常に効率的なツールです。 Dialyzerはあらゆる種類の矛盾、例えば1度も実行されないコードを検知するために使われますが、主な用途はErlangコードベース内の型エラーの検知に関することです。 多くを見る前に、DialyzerのPersistent

    33. 型仕様とErlang 33.1. PLTは最高のサンドイッチ | Learn You Some Erlang for Great Good!
  • Introduction | Learn You Some Erlang for Great Good! 日本語訳

    翻訳について¶ このドキュメントは、Learn you some Erlang for great good! (http://learnyousomeerlang.com/) を著者の許可の下、日語訳したものです。ドキュメントのランセンスはCreative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported、ソースコードのライセンスは修正BSDです。

  • Introduction | Learn You Some Erlang for Great Good! 日本語訳

    翻訳について¶ このドキュメントは、Learn you some Erlang for great good! (http://learnyousomeerlang.com/) を著者の許可の下、日語訳したものです。ドキュメントのランセンスはCreative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported、ソースコードのライセンスは修正BSDです。

  • 1