読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

並列HTTPダウンローダ

Erlang クエックブックを眺めていると、HTTPでデータを取得するサンプルがありました。httpモジュールを使うと簡単にできそう。ということでHTTPダウンローダを作ってみました。 仕様 せっかくなので複数プロセスで並列取得するようにしてみます。 引数で取…

List comprehensionを使ったクイックソート

List comprehensionを使うと簡単にクイックソートができるらしい。というか、Programming Examplesにサンプルが載っているわけだけど、おもしろそうなので勉強がてら再発明してみた。 クイックソートのアルゴリズム wikipediaより、クイックソートのアルゴリ…

List comprehension

List comprehensionとかいう耳慣れない機能を発見したので使ってみます。 これを使うと、 各要素を処理した結果リストの作成(rubyのArray#map!みたいなこと) 条件を満たす要素での絞り込み(rubyのArray#reject!みたいなこと) リスト同士の総当たりによるリス…

try catch

チュートリアルに出てこなかったので、例外の投げ方と捕捉方法について調べてみました。 Erlangにもtry .. catchによる例外処理の仕組みがあります。 JavaScriptと同様にthrow()で任意のオブジェクトを例外?として発生させることができます。 発生した例外は…

Rulang BridgeでRubyからErlangを呼び出してみた

Rulang BridgeというRuby から Erlang の関数を呼び出すライブラリを見つけたので使ってみました。これを使うと、Rubyのプログラムからあらかじめ起動しておいたErlangサーバーにアクセスし、Erlangの関数を実行することができます。自作の関数も実行できま…

レコードとマクロ

Getting Started With Erlangの5章。「5.3 Records」と「5.4 Macros」 レコード レコードは名前付きのタプル定義です。これを使うと名前と値を指定してタプルを生成できます。 名前付きなので順番を考慮せずにタプルが作成できます。 データの追加が比較的簡…

プロセスの終了とシグナルの送付

Getting Started With Erlangの「4.2 Error Handling」について。 プロセスの終了 処理がループせず終了した場合、または、exit(Reason)が実行された場合、プロセスは終了します。 処理が終了した場合とexit(Reason)のReasonがnormalのアトムである場合、正…

receive構文でのタイムアウト

Getting Started With Erlangの続き。ちょい忙しいので「4.1 Timeouts」だけ。 receive構文でのタイムアウト receive構文では、メッセージ待ち受けがタイムアウトした場合の処理を指定することができます。以下の形式で書きます。 receive <パターン> -> <処…

プロセスに名前を付ける/分散

Getting Started With Erlangの続き。3.3 Registered Process Namesと3.4 Distributed Programming。 プロセスに名前を付ける 「register(Atom,ProcessId).」でプロセス(ID)に名前を付けることができます。名前が付けられたプロセスには「 ! 」のような感じ…

並列処理(プロセスの開始とプロセス間通信まで)

Getting Started With Erlangの続き。いよいよ並列処理(3 Concurrent Programming)です! プロセス Erlangのスレッドはデータを共有しないため、プロセスと呼ばれます。プロセスは組み込み関数の「spawn(Module, Exported_Function, List of Arguments). 」で…

組み込み関数と高階関数

Getting Started With Erlangの2.12 Built In Functions (BIFs)と2.13 Higher Order Functions (Funs)についてまとめ。 組み込み関数 FizzBuzzで使用した"rem"などが組み込み関数として用意されています。 組み込み関数はerlangモジュールに属する。 呼び出…

「|」演算子、ifとcaseでの条件分岐

Getting Started With Erlangの2.10 More About Listsと2.11 If and Caseを読みました。 「|」演算子を使った先頭要素の取得とリストの結合 「|」演算子でListの先頭要素を取得することができます。また、リストに要素を追加することができます。 「[HEAD|RE…

2.6 Standard Modules and Manual Pagesから 2.9 Matching, Guards and Scope of Variables まで。

Getting Started With Erlangの続き。今日は2.6 Standard Modules and Manual Pagesから2.9 Matching, Guards and Scope of Variablesまで。 定義済みモジュール 「erl -man 」で定義済みモジュールの説明がみれるとのこと。早速やってみる。 >erl -man io -…

Atom,Tuple,List

とりあえず、「Getting Started With Erlang」を読みつつ、気になった点などをまとめていくことにします。今日は 2.1 The Erlang Shellから2.5 Listsまで。 アトム Rubyのシンボルに近いイメージの定数?みたいなもの。 →2.3 Atoms 小文字で始まる文字列がア…

ErlangでHello Worldまで。

慢性的ネタ切れ状態になってきたので、新しい言語をさわってみることにします。ということでErlangです。まずは、Erlang Landやこれから15分でErlangを始めるための資料 をみながら実行環境のerlをインストールして、「Hello World」まで。 Hello World Hell…