タグ

PythonとPerlに関するagwのブックマーク (26)

  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • それ内部イテレータ - odz buffer

    ref:404 Blog Not Found:perl - 格子点を生成する関数の生成 うはは、無理矢理。コードを生成して、eval するなら、そりゃそっちのが速いよなぁ。 つうか、逆転の発想というより、そりゃ外部イテレータが内部イテレータに変わっているって話だ。いやまぁ、別にいいっちゃいいんだけど、内部イテレータ有りならもっと素直に書いてたな。こんなの。 use strict; use warnings; sub mesh_iterate { my ( $sub, @points ) = @_; my $base = pop @points; unless (@points) { for my $i (@$base) { $sub->($i); } } else { mesh_iterate( sub { for my $i (@$base) { $sub->( @_, $i ); }

    それ内部イテレータ - odz buffer
  • 格子点の生成 - odz buffer

    任意次元の格子点を(大量のメモリを使うことなく)生成するコードを出来るだけ汎用的に書いてみるテスト。 Python ならかなり簡単に書ける。generator(コルーチン)万歳。 def mesh(*points): if len(points) == 1: for x in points[0]: yield [x] else: for point in mesh(*points[:-1]): for x in points[-1]: yield point + [x] if __name__ == '__main__': for point in mesh(range(10), range(10), range(10)): print point Perl ならこんな感じ?めんどい。 sub mesh_iterator { my @coords = @_; my @indices = m

    格子点の生成 - odz buffer
  • YAMLの歴史とYAML.pmの将来。 - 2006年9月 - Walrus, Visit.

    今頃、初めてのIO::Fileモジュールしてます。何でこのモジュール、Web上に解説が見つからないんだろう。分かる人には簡単過ぎるとか? 2006-09-29 (Fri) 21:08:24 【"非"検索会議 sponsored by Yahoo! 検索】脳科学の茂木氏らを迎え、「選ばれるWeb」をテーマにWebの未来を探る(bb.watch.impress.co.jp)。 2006-09-29 (Fri) 21:03:58 Open Tech Press | アップデート版Free Documentation Licenseのリリース(opentechpress.jp)。 2006-09-29 (Fri) 21:03:49 ITmedia News:[WSJ] Wikipedia対ブリタニカ――優劣めぐりトップが激論(www.itmedia.co.jp)。 2006-09-29 (Fri)

  • ln, log, log10 - まじかんと雑記

    一般に、プログラミングにおいて、対数は三種類ある。自然対数と、常用対数と、一般の底の対数だ。問題は、それらの表し方について統一的な決まりがないことだ。 一般的な関数電卓では、ln が自然対数を表し、log が常用対数を表す。そして任意の底についての対数を直接に計算する機能はないことが多い。一方、プログラミングにおける各種ライブラリなどにおいては、log が自然対数を表し、log10 が常用対数を表すことが多いような気がする。 というように、表記法が大まかに二つあるので、#Script においてはどうすべきか悩んでいる。 任意の底の対数については、log という名前の関数に二つの引数を渡すという点においてはバライエティがなくても、底と真数のどちらを先にするかという順番の問題がある。 とりあえず、いくつかのプログラミング言語(のライブラリ)について、対数をどのように指定するか調べた結果が次の表

    ln, log, log10 - まじかんと雑記
  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

    agw
    agw 2005/11/05