2011-01-01から1年間の記事一覧
前回のつづきです。Erlangには配列がないものだと思い込んでいたのでこのようなエントリを書いたのですが、ふとReference Manualを見るとarrayという単語が...以前書いたCRC32のルーチンに追加して再度計測してみました。 Erlang R14B03 (erts-5.8.4) [sourc…
先日のErlangと配列の続きです。あらすじ: zlib:crc32と、自前で実装したCRC32の性能を比較しました。自前で実装したCRC32は内部のテーブルの持ちかたをいろいろ変えて性能の違いを計ってみました。当たり前ですがzlibのものが一番早かったです。今回はそん…
io:format/2みたいな書式指定の出力を、printfに対するsprintfのように、文字列を作るために使いたい! というときには io_lib:format/2が使えます。 16> io_lib:format("~s", ["ABCDE"]). ["ABCDE"] 17> io_lib:format("~10s", ["ABCDE"]). [[[32," ",32,32]…
(「ErlangとCRC32」から改題)CRC32が必要になりそうだったので、Erlangでどうやって実現させるかを考えてみました。zlib:crc32があることが分かりましたが、CRC32と一口に言っても利用する多項式によって様々なバリエーションがありますので、多項式を外から…
Quineとは自分自身を出力するようなプログラムです。出力結果と、元のソースを比較するとぴったり一致します。賢い人にしか書けないと思っていたので、私には縁がないと思っていたのですが、Google Code Jam Japan 2011 T-shirtによると、「Quine を書いたこ…
お題:アラビア数字・ローマ数字変換 - No Programming, No LifeをErlangでやってみました。やってみたのはけっこう前ですが放置していました。まずarabic_to_roman。ローマ数字には位取りの0がないのでちょっと表現が難しいですが、1、10、100の位について…
JIntefaceはErlangとJavaの相互運用を可能にするモジュールです。OTPに最初から含まれているので手軽に利用することができます。先日、ErlangにRPCで指示を出して、応答をJTreeで表示するというテストアプリを書いてみたところ思いのほか便利で、これに加え…
FeliCaのポーリングで取得できるPMmからコマンドごとのタイムアウト時間を計算する必要が生じたため、Erlangで書いてみました。PMmの各バイトを、2ビット、3ビット、3ビットに分けて計算するので、まずは取り出してみましょう。 4> <<E:2, B:3, A:3>> = <<2#10011101>>. <<1</e:2,>…
前回の記事で書いたソースをいじってみましょう。下記2点が気になりました。 リストに1つしか文字列がないときに期待通りの動きをしない。 これは、lists:all(Fun, []) が true を返すためですね。 1文字辿るのに2回もループを回している。 lists:all/2 と、…
お久しぶりです。No Programming, No Lifeで見掛けた表題のお題をErlangでやってみます。まず、文字列が2つのときを考えます。これは文字列のパターンマッチングを使えば問題なさそうですね。 -module(ahya). -compile(export_all). ahya([H1|T1], [H1|T2]) …
Parsecの練習をしている最中、ふと「parsec erlang」で調べてみたら、Parsec Erlangを発見しました。 Parsec - HaskellWikiからもリンクされていますね。ドキュメントがほとんどなく、サンプルもまったく見つからないという巨大な問題があり(こちらのバージ…
gooブログ から引っ越してきました。よろしくお願いします。