タグ

ブックマーク / dankogai.livedoor.blog (23)

  • perl - tie()って何をtieするの? : 404 Blog Not Found

    2008年07月05日01:30 カテゴリLightweight Languages perl - tie()って何をtieするの? 私はタイをまとうのがだいっきらいですが、Perl 5の中で一番好きな関数がtie()だったりします。 tie関数とは - 燈明日記 すると、裏で処理が動き、オブジェクトをコンストラクトしたり、とある処理結果が参照できたり、代入したものに対応したものを格納出来たりする。 というわけで、tie()について語っておくことにしましょう。 tie()とはなにか? ずばり、「オブジェクトではない、perlの組み込みデータタイプを裏でオブジェクト化する仕組み」のことです。それがなぜtieと呼ばれるかと言えば、変数を指定されたクラスに結びつけるから、です。 論より証拠、実際に見てみましょう。 use strict; use warnings; { package MySca

    perl - tie()って何をtieするの? : 404 Blog Not Found
  • perl - parser書くならgoto : 404 Blog Not Found

    2007年04月24日18:00 カテゴリLightweight Languages perl - parser書くならgoto しかし、当の当の番はこちらだったりする。 404 Blog Not Found:perl - POO と goto Perl 5のgotoは、仕組みを理解した上で使いどころを誤らなければかのごとく強力なのである。 前回の例では、それでも"One of many ways to do it"で、「知らなくても困らない」レベルのものであった。しかし、今回の例は、gotoがなければ当にきつい。 以下の例を考えてみよう。 入力: (define (fact n) (if (= n 1) 1 (* n (fact (- n 1))))) 出力: [['define',['fact','n'],['if',['=','n','1'],'1',['*','n',['f

    perl - parser書くならgoto : 404 Blog Not Found
  • 404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン

    2007年10月30日20:00 カテゴリLightweight Languages perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン 久々の勝手に添削。今回はこちら。 40行で作るPerl用テンプレートエンジン 正規表現がらみなので、Perl以外でも有用。 添削箇所は、こちら。 40行で作るPerl用テンプレートエンジン sub convert { return unless defined(my $str = shift); $str =~ s{&amp;}{&amp;}gso; $str =~ s{<}{&lt;}gso; $str =~ s{>}{&gt;}gso; $str =~ s{\"}{&quot;}gso; $str; } これの最初のsubstitutionが&amp;ではなくて&ではないかというのはさておき、こういった場合、何度も正規表現をかけ

    404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン
  • perl,javascript and more - evalは最後の武器 : 404 Blog Not Found

    2009年02月08日01:00 カテゴリLightweight Languages perl,javascript and more - evalは最後の武器 うーん、そうなのだけど.... メタプログラミングとは - Perl入門〜サンプルコードによるPerl入門〜 メタプログラミングとはソースコードを生成するプログラミングのことです。メタプログラミングによって生成したソースコードは、eval関数で実行することができます。 evalだけがメタプログラミングの技法ではないし、またevalはその威力ゆえ最後の選択肢とすべきだ。 #!/usr/local/bin/perl use strict; use warnings; use Benchmark qw/timethese cmpthese/; cmpthese( timethese( 0, { eval => sub { no warn

    perl,javascript and more - evalは最後の武器 : 404 Blog Not Found
  • 404 Blog Not Found:perl - to goto or not to goto, that's the continuation

    2007年04月18日06:45 カテゴリLightweight Languages perl - to goto or not to goto, that's the continuation Perlでもgotoを使えば、当の継続(continuation)が可能であることを示す。 継続ってなんのことだかさっぱりわからない一は、以下にあらかじめ目をとおしておいていただきたい。 なんでも継続 なんでも継続、Perl で。 : torus solutions! 404 Blog Not Found:継続は力なり Tociyuki::Diary - Perl 5.8 で似非継続 Perl 5のgotoには、3種類ある。 goto LABEL こちらはCなどで見られるgotoと等価である。 goto END; print "Hello\n"; END: print "Goobye\n"; G

    404 Blog Not Found:perl - to goto or not to goto, that's the continuation
  • perl - package と stash を理解する : 404 Blog Not Found

    2009年02月18日01:00 カテゴリLightweight Languages perl - package と stash を理解する 以下に触発されて。 CPAN 長いネームスペース大会 - にぽたん研究所 CPAN 階層の深いモジュール王選手権 - id:kazuhookuのメモ置き場 パッケージの階層はどこまで深く出来るか それを調べるために、以下のスクリプトを用意した。 #!/usr/local/bin/perl use strict; use warnings; use Data::Dumper; my $maxdepth = shift || 1024; my $ns = 'P'; sub dummy { 1 } print Dumper \%P::; for my $i ( 1 .. $maxdepth ) { no strict 'refs'; local *{ $

    perl - package と stash を理解する : 404 Blog Not Found
  • 404 Blog Not Found:perl - Dir::Tree つうのを書いてみた

    2007年11月07日23:00 カテゴリLightweight Languages perl - Dir::Tree つうのを書いてみた そんなあなたに、こんなモジュールを書いてみた。 tree コマンドが便利 - IT戦記 もっと直感的に(あまり考えずに)、探せるコマンドはないのかなあと思って tree コマンドを使ってみた。使い方は、こんな感じ。 % perl -Ilib -MDir::Tree -e 'print Dir::Tree->new(shift)->tree_cmd(1)' . |-- Changes |-- MANIFEST |-- Makefile.PL |-- README |-- lib | |-- Dir | | |-- #Tree.pm# | | |-- Tree.pm |-- t | |-- 00-load.t | |-- boilerplate.t | |

    404 Blog Not Found:perl - Dir::Tree つうのを書いてみた
  • perl - use strict; # and be happy : 404 Blog Not Found

    2006年05月21日05:20 カテゴリLightweight Languages perl - use strict; # and be happy どうやら私のでは、啓蒙が全然足りなかったらしい。 Perl/CGI辞典 - 土井 毅さん 著 - にて use strict が推奨されていない件について - iandeth. p.104 strict プラグマは、Perlスクリプトでの記法を厳密にするためのプラグマです。 (中略) これにより、宣言の曖昧な変数への参照を発見できます。 [参考] strict プラグマは厳密すぎるため、通常のプログラミングではあまり使用しません。 ... orz このが20世紀に出たというのであれば驚かないけど、今年に出たというのは、Perl5 Porterとしてもショックである。 しかし、確かにuse strict; # or dieという姿勢だけ

    perl - use strict; # and be happy : 404 Blog Not Found
  • {perl,ruby} -nle 'print if /start/../end/' : 404 Blog Not Found

    2006年12月22日19:00 カテゴリLightweight Languages {perl,ruby} -nle 'print if /start/../end/' アルファギークでも知らなかったというのは、不思議でもあり当然のようでもあり。 naoyaグループ - naoyaの日記 - if /regexp/../regexp/ Perl で正規表現を .. すると、その間に含まれる文字列という意味でマッチさせられる。 % w3m -dump_source http://www.yahoo.com/ | perl -nle 'print if /^<style/../<\/style>/' とするとこれ、実に由緒正しい使い方で、たしかまだperlがhashすらサポートしていない頃からあったと記憶しています。なにしろsed/awkが起源ですから。 NAME operator - se

    {perl,ruby} -nle 'print if /start/../end/' : 404 Blog Not Found
  • perl - use Carp; # warn() と die() だけじゃなくて : 404 Blog Not Found

    2008年06月30日04:00 カテゴリLightweight LanguagesTips perl - use Carp; # warn() と die() だけじゃなくて 以下のエラー処理の方法にちょっと口を挟みたくなったので。 エラー処理を行う。 - サンプルコードによる Perl 入門 warn() vs. die() まず、warn()の使い方。エラーに対して使ってはいけません。warnはその名の通り、あくまでもエラーではなく警告です。エラーの際にはdie()を使わなければなりません。 警告とエラーの違いですが、警告は「続けて処理してもいいけど、これはあなたの意図ではないかもしれません」という場合、エラーは「このままでは処理を続けられません」という場合です。 たとえばperlの場合、抜けた引数はundefなので、数値としては0、文字列としては''として解釈されます。それらをデフ

    perl - use Carp; # warn() と die() だけじゃなくて : 404 Blog Not Found
  • 備忘録 - Mountain Lion を最低限文化的にしつけるためにやったこと : 404 Blog Not Found

    2012年07月26日09:45 カテゴリTips 備忘録 - Mountain Lion を最低限文化的にしつけるためにやったこと つつがなくリリースされました。 感想は 404 Blog Not Found:iOS多くして獅子山昇る - 品評 - OS X Mountain Lion Preview Release とほぼ変わらず。その後 Dictation とかが追加されましたが、これで「iOSには出来るのにOS Xには出来ない」ことが大部分解消されていい感じです。 とはいえ、「今まで動いていたものが動かなくなる」ことは、OSのアップグレードにはつきもの。entryは、それを再び動くようにするための備忘録です。 (追記あり) InstallESD.dmg の保全 App Storeからインストーラーをダウンロードしたらインストーラーが起動しますが、インストールボタンを押す前に In

    備忘録 - Mountain Lion を最低限文化的にしつけるためにやったこと : 404 Blog Not Found
    love0hate
    love0hate 2012/11/29
    makeすら入ってなくてビビった。
  • javascript - Function.prototype.bindを無理矢理捕縛してみた : 404 Blog Not Found

    2011年12月18日15:30 カテゴリLightweight Languages javascript - Function.prototype.bindを無理矢理捕縛してみた +1。 Function.prototype.bindは何がいいのか - 枕を欹てて聴く というわけでFunction.prototype.bindは単なる簡単な追加機能とか補足みたいなのじゃなくて, 凄まじい新機能(call, applyに匹敵)で, かつ非常に奥が深いのでした. なのにSafariとiOSとAndroidでサポートしてないなんて。あんまりだよ、こんなのってないよ。 Prototype.jsにあった、ような… Prototype.jsのころはこんな感じでした。 var oBind = Function.prototype.bind; /* preserve the original */ Fu

    javascript - Function.prototype.bindを無理矢理捕縛してみた : 404 Blog Not Found
  • LearnBy $ Haskell $ Hand - #書評_ - Real World Haskell : 404 Blog Not Found

    2009年10月29日11:00 カテゴリ書評/画評/品評Lightweight Languages LearnBy $ Haskell $ Hand - #書評_ - Real World Haskell オライリー矢野様より献御礼。 Real World Haskell Bryan O'Sullivan / John Goerzen / Don Stewart / 山下 伸夫 / 伊東 勝利 / タイムインターメディア訳 [原著:Real World Haskell] 素晴らしい。これなら Ph. D どころか中卒でも、Haskellが頭でなく手でわかるようになる。特に モナドの説明文章って、何個か読んでみたけど、「これを紹介したい!」「これも紹介したい!」ってのが強すぎて、まずプログラミング言語の一要素として使えるようにして、体感してもらってからじゃないと、理解進まないんじゃないの

    LearnBy $ Haskell $ Hand - #書評_ - Real World Haskell : 404 Blog Not Found
  • Haskellは難しくない--こともある。 : 404 Blog Not Found

    2006年06月20日18:20 カテゴリWEB+DB PRESSLightweight Languages Haskellは難しくない--こともある。 まだVol.33も正式発売されていないというのに、すでにVol.34の原稿書きにいそしむ今日この頃。実はその記事の一つがHaskellだ。「Powered by Ph.Dな言語の解説を中卒がやるのってどうよ?」と我ながら思うが、自分で言うのもなんだがむしろいい記事に仕上がってきているのを感じる。 Matzにっき(2006-06-13) 私:「Haskell難しいですから」 「ええっ?」 というわけで、予告ついでに、HaskellよりRubyの方がずっと難しいことを一つ上げさせていただく。 それは、なんといってもProcオブジェクトだ。 「Rubyの美しくない部分を一つあげよ」と聞いて、真っ先に思い立つのがこれだ。 例えば、logbXをカリ

    Haskellは難しくない--こともある。 : 404 Blog Not Found
  • Haskellで一番難しいのは : 404 Blog Not Found

    2006年04月08日14:28 カテゴリ書評/画評/品評Lightweight Languages Haskellで一番難しいのは 門に入ることではないか。なにせこの門はモナドで出来ているのだから(苦笑) 入門Haskell 向井 淳 これは「難しそうな」モノであれば難だってそうなのだが、特にHaskellの場合はそれが言える。それだけに、入門書は重要であり、日語によるそれが出たのをまずは讃えたい。 しかし、入門書は、ある意味最も難しい。「難しい事を簡単に」という事が最も強く求められるからだ。しかも、それだけではまだ入門書として充分ではない。そもそも門の中に入ってこさせる気を読者に起こさせなければならないからだ。難しいことを簡単、かつ楽しくやらないと駄目なのだ。 その意味で、書の入門書としての出来なのだが、K&Rやリャマや「楽しいRuby」あたりと比較すると、やはりものすごく見劣り

    Haskellで一番難しいのは : 404 Blog Not Found
  • ふつうくさく、汗臭くないHaskell本 : 404 Blog Not Found

    2006年06月01日01:00 カテゴリ書評/画評/品評Lightweight Languages ふつうくさく、汗臭くないHaskell タイトルは日拙宅にて行われた「素人くさいSICP読書会」からインスパイヤされたもの。 ふつうのHaskellプログラミング 青木 峰郎 実はこの読書会のメンバー、「素人くさい」が素人と呼ぶにはあまりにGeekくさい人々ばかりなのだ。 書の「ふつう」は、そんな「ふつう」だ。 もし「入門Haskell」が日におけるHaskellの元祖なら、こちらは家ともいえるかもしれない。その期待の高さは、発売前にしてサポートページがこれほどはてブされていることからもわかる。 確かに、期待に背かない、素晴らしい出来だった。 まずHaskellの鬼門ともいえる入出力のスタイルに習うより慣れ、Haskellへの恐怖心が和らいだところから徐々にHaskellの確信

    ふつうくさく、汗臭くないHaskell本 : 404 Blog Not Found
  • 書評 - フューチャリスト宣言 : 404 Blog Not Found

    2007年05月08日00:00 カテゴリ書評/画評/品評 書評 - フューチャリスト宣言 献頂いて恐縮なのだが、題に行く前に一言。 フューチャリスト宣言 梅田望夫 / 茂木健一郎 茂木健一郎 クオリア日記: フューチャリスト宣言 特設ページ My Life Between Silicon Valley and Japan - 「フューチャリスト宣言」連休明けに発売 献の添え状より なお、大変勝手ながら、書店に並ぶのが五月八日(火)頃からになります。ブログなどのメディアでお取り上げくださる場合は、五月八日以降にお願い致します。 あーっわかってないっ。 いくらネットの世界とはいっても、ある発言ががネットを伝播し、botにcrawlされるにはある程度の時間がかかる。はてブなどSBMの利用層に対してそれは24時間を切るが、それが検索エンジンの検索に反映されるには数日、そして別メディアがその

    書評 - フューチャリスト宣言 : 404 Blog Not Found
  • そろそろerlangについて一言いっとくか : 404 Blog Not Found

    2007年05月16日22:45 カテゴリLightweight Languages そろそろerlangについて一言いっとくか 実は最近結構erlangを使っているので。 萎え - whatever erlang sucks 一貫性無さ過ぎな文法 変数束縛が Variable = Value. なのに、関数定義が function(Aargument) -> blah, blah, blah. てのはどうよ?しかも変数は大文字ではじめて関数は小文字ってわけわかめ。 しかも、 ->は関数だけではなく、 receive Message -> blah blah blah. という風にも使う。確かにMessageをArgumentとして見れば、関数定義と似てはいるのだけど。 しかしそれなら、JavaScriptのaddEventLister()じゃないけど、receiveするという関数/メソッ

    そろそろerlangについて一言いっとくか : 404 Blog Not Found
  • 備忘録 - #python3 で sys.std(in|out|err) の encoding を強制する : 404 Blog Not Found

    2012年08月06日22:45 カテゴリLightweight LanguagesTips 備忘録 - #python3 で sys.std(in|out|err) の encoding を強制する Pythonチュートリアル第2版 Guido van Rossum / 鴨澤眞夫訳 身の程知らずにもPyCon JP 2012で講演することになったこともあって、日頃空気のようにPerlやJSや時々Rubyで書いていることをあえてPython 3で書いている今日この頃なのですが、これははまった。 こんな解決策でいいのかな、と思いつつも、「Pythonチュートリアル」の訳者@kamosawaのお墨付きも得たので一応まとめておくことに。 結論 特定のインプットだけ変換するならこれがいいと思う。RT @dankogai 【急募】 #python3 でLC_ALL=Cで起動した後にsys.stdin

    備忘録 - #python3 で sys.std(in|out|err) の encoding を強制する : 404 Blog Not Found
  • 円周率を延々と表示しつづけるだけの javascript : 404 Blog Not Found

    2007年05月15日16:30 カテゴリLightweight LanguagesMath 円周率を延々と表示しつづけるだけの javascript 件のサイトに接続できないので自分で書いてみた。 円周率を延々と表示し続けるだけのサイト - GIGAZINE 円周率といえば小学生がどこまで暗記できるかで勝負してみたり、スーパーコンピュータの能力を自慢するときに使われたりする数字ですが、それを延々と表示し続けるサイトがあるというタレコミがありました。 四桁ごとにπを延々と表示します。厳密には延々ではなく(デフォルトで)1000桁までなのですが。 最高桁数: π = 3.141 当初は10000桁がデフォルトだったのですが、それだとOperaがむちゃ重なので1000にしときました。Firefoxとかだと10000桁でもそこそこの速度で動きます。 実装はソースを参照のこと。アルゴリズムはこちら

    円周率を延々と表示しつづけるだけの javascript : 404 Blog Not Found