タグ

languageに関するIMAKADOのブックマーク (30)

  • If Programming Languages Were Real Persons | Jeez Tech

    What if programming languages were real persons like you and me? What if they were parts of families and had relations and affairs? Have you ever thought of going to a supermarket and Visual Basic was the young woman waiting in the line in front of you? Well we did. We let our imagination free and we came up with pictures and facts :). We hope you enjoy this article since it only exist as a geeks

  • 検索と挿入がともにO(1)であるようなHashを作るにはコツがいる

    このところ立て続けに表記の事実を理解していない俺実装のHash(しかもCで!)を見かけたので、おそらく知られていないんだと思う。以降、同じ轍を踏む人が少なくなればと思い、啓蒙のために公開しておく。 先に言っておくがおまえらはHashを再発明するんじゃねよボケが。おとなしくありもののライブラリ使えよ。つうかHashのある言語使えよ。Cとかマゾかよ。 言葉と前提とりあえずHashが何であるかとか、どういう作りになっているかとか、そういうことは既知とする。リストの配列ってことね。←これで何言ってるか分からないおまえらにはこの文章はちょっとはやい。先にデータ構造の教科書を読むことをおすすめ。以下ではHashに登録されるキーとデータのペアのことをentryと呼び、リストの配列と言ったときのリストのほうをbin、配列のほうをbucketと呼ぶ。つまり、 class Hash { typedef lis

    検索と挿入がともにO(1)であるようなHashを作るにはコツがいる
  • PHPのsort関数は相当おかしい - hnwの日記

    追記(2009/02/28 15:35):ソートする配列の要素が数値または数値形式の文字列のみの場合は、<、==、>が推移律を満たすので、この記事のような矛盾は起こりません。念のため。 オヤジギャグがこらえられなくなったら立派なオヤジだと思います。それはさておき、今日はPHPのsort関数が不思議な挙動をする例を紹介します。 sort関数の紹介 sort ― 配列をソートする 説明 bool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] ) この関数は配列をソートします。この関数が正常に終了すると、 各要素は低位から高位へ並べ替えられます。 PHP: sort - Manual マニュアルをみる限り普通のソート関数です。省略可能な2番目の引数の意味は次の通りです。 sort_flags オプションの 2 番目のパラメータ s

    PHPのsort関数は相当おかしい - hnwの日記
    IMAKADO
    IMAKADO 2009/02/28
    文字列sort
  • doはブロックだけどevalはブロックじゃないよ - Unknown::Programming

    Perlのブロックってすごいよね. パッと見, 構造っぽいもん. でもevalとかdoとかってブロックが後に続いているだけなんだよね(微妙な認識かも)? ブロック - make for h @ppy_things; タイトルで言ってしまった感がありますが^^; 厳密に言うとdoとevalのブロックは違うんですよ。以下のコード結果を見れば一発。 sub do_func { do { return 'block return'; }; return 'normal return'; } sub eval_func { eval { return 'block return'; }; return 'normal return'; } print do_func(),"\n"; # block return print eval_func(),"\n"; # normal return retu

    doはブロックだけどevalはブロックじゃないよ - Unknown::Programming
    IMAKADO
    IMAKADO 2009/02/17
    evalはブロックではない/Error.pm/プロトタイプ宣言
  • (function(){ ... })() の個人的な解釈 - hogehoge @teramako

    (function(var){..............})(var) と function(var){............} の違い。つまり、クロージャ。 - それ図解で。・・・tohokuaikiのチラシの裏 via: (function(){})() と function(){}() - IT戦記 解釈としてはオブジェクトの後ろに()をつけると関数とみなされて実行されるにつきると思う。 実際、どう見ても関数でないものでも後ろに()をつけると関数として評価しようとがんばってくれる。 JavaScript Shell 1.4の結果 var hoge = new Object(); hoge() TypeError on line 1: hoge is not a function 10() TypeError on line 1: 10 is not a function true

    (function(){ ... })() の個人的な解釈 - hogehoge @teramako
  • プロトタイプベースの誤解 - Smalltalkのtは小文字です

    クラスベースのOOとプロトタイプベースのOOで決定的に違うのは、プログラムを動かしている最中にオブジェクトが出来ること、すなわちメソッド(method)を追加したり再定義したりできるかだ。 404 Blog Not Found:タイプ・クラス・プロトタイプ - OOの語彙 これはひどい。w オブジェクトに対して動的(実行時)にメソッドやインスタンス変数を追加できることと、“プロトタイプベース”においてオブジェクトがそれが属するクラスによらず独自のメソッドやインスタンス変数を持てることとは別の話です。 あらためて、「プロトタイプベース」という用語自体に問題が多いことを実感させられる記事でもありますね。個人的には、クラスを用いないオブジェクト生成手法の話でないのならば(つまり、「プロトタイプの複製でオブジェクトを生成する」ことが話の筋でないならば)「プロトタイプベース」ではなく、「インスタン

    プロトタイプベースの誤解 - Smalltalkのtは小文字です
  • perl - $scalar = %hash; # で$scalarはどうなる? : 404 Blog Not Found

    2008年05月04日02:00 カテゴリLightweight Languages perl - $scalar = %hash; # で$scalarはどうなる? たしかにこれには面らうが、一応それなりの意味がある。 jijixi's diary - perlsh より pirl の方が高機能とか書いたが嘘だった , .perlshrc 改訂版 (修正済) , Perl 初心者日記 , our/my/local は package.. main[145]$ $scalar = %hash "1/8" この挙動↑ がわけわからん。 普通に考えたら "foo" とかが入りそうだがなー。 何が起こっているかのヒントを探すべく、以下のようなscriptを実行してみることにしよう。 my %hash; for my $i (0..100){ my $scalar = %hash; print

    perl - $scalar = %hash; # で$scalarはどうなる? : 404 Blog Not Found
  • プログラミング言語はLispに回帰しているんだろう - http://rubikitch.com/に移転しました

    Lispはいまだ一騎当千の最強言語の地位を不動のものにしている(と思う)が、考案されたのが50年も昔というのには驚かされる。古代の神秘という感じ。 歴史には詳しくないけど、初期のLispからlambda式やGCってあったよな?あと、Schemeも30年以上前に生まれたんだっけ。あのころからレキシカルクロージャーがあったんだよね。すごいよなあ。 RubyはLispの長所をたくさんとりいれた。Javaも最近になってクロージャーが導入されたっけ。GCは今な言語にはほぼ必ずといっていいほど備わっている。いろいろな言語がLispに近づこうとしているような。Lispの考え方からいろいろな言語が生まれて、進化の先はLispに回帰するということか… せっかく最強言語のLispがありながら、おれおれ言語がどんどん登場していくさまはおもしろい。括弧が嫌いなのかな。Lispの表現力の源はS式だというのに括弧を拒

    プログラミング言語はLispに回帰しているんだろう - http://rubikitch.com/に移転しました
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • ruby のハッシュで使われている st_hash とは - IT戦記

    ここを見て hash関数 - 初学者の箸置 Ruby で使われている st.c ってなんなんだろうと思って調べてみた いろいろ使われてる ちょっとググったら、いろいろと使われているみたいですね Ruby Syck Oniguruma CPAN の File::MMagic::XS モジュール ライセンス ライセンスがパブリックドメインなので、何も考えないで使えて良さそう。 よくわかる解説がありました 第3章 名前と名前表

    ruby のハッシュで使われている st_hash とは - IT戦記
  • 特殊変数 $" と $, の違い - ヒルズで働く@robarioの技ログ

    ちょっと「ん?」となったので。 今日Perl Tip. 配列をプリントアウトしたいぜ! - Lazy Programmer :-p 「それはプリントアウトじゃなくて変数展開だぜ」と細かい事を言ってみる。 my @food = qw/sashimi yakiniku purin/; local $" = ', '; # とすると print "@food"; # これは sashimi, yakiniku, purin になるが、 print @food; # これは sashimiyakinikupurin になってしまう。 "@food" eq 'sashimi, yakiniku, purin'; # true 「プリントアウトするときの区切り」は $, my @food = qw/sashimi yakiniku purin/; local $, = ', '; # とすると pri

    特殊変数 $" と $, の違い - ヒルズで働く@robarioの技ログ
  • 「アセンブリ言語の教科書」の原稿

    このテキストは、2005年7月にデータハウスから出版された「アセンブリ言語の教科書」の原稿をWEB用に修正したものです。WEB用に修正したといっても、誤植を直した程度であり、ほぼそのままの状態で公開しています。 現在でも「アセンブリ言語の教科書」は書店で売られており、一般に流通しているため、来ならば、出版社との契約上、このようにフリーでWEB上に公開することはできません。しかし、「アセンブリ言語の教科書」は、発売後すでに一年を過ぎようとしているにも関わらず、現在でも安定した売り上げを伸ばしており、当初の予想を超えて多くの方々に読んでいただけました。 よって、出版社に「書の値段が高くて、読みたくても買えない学生の方々や、まだ書の存在を知らない人たちのために、原稿の一部をWEB上にも公開できないだろうか」と、相談を持ちかけたところ、書に関わった編集者からも「原稿のすべては無理だが一部分

  • d.y.d.構文解析の話をしよう

    16:46 08/03/30 YZ1.DLL 0.30 リリース しました。 具体的には、ヘッダの格納ファイル数フィールドに実際より大きい値が入ってると変なとこ読もうとして落ちるバグ修正。 GreenPad の修正は来週くらいには…。 Booooooost Boost 1.35.0 来てました。 Asio と Fusion と GIL の三枚看板がでかいですが、Bimap が地味に便利だ。 あと、mbさんのEgg のレビューが明日からでしょうか。(また スケジュール から消えてますが…Protoが入る前までロールバックしてる?) 他人事ながらドキドキ。 17:36 08/03/28 ケース 十年来の疑問なんですが、"case" に単独で対応する日語ってなんになるんですかね。 "case-insensitive" や "lowercase" の "case"。単に "case-insens

  • スクリプト言語の比較::ヒアドキュメント

    ヒアドキュメント << のあとの文字列 string から単独で置かれた string までの行が文字列となる機能。 複数行の取り扱い(表示など)を記述するのに便利。 Perl << のあとの文字列 string から単独で置かれた string までの行が文字列となる機能。 $str = "foo"; print <<EOS; <HTML> $str </HTML> EOS string をそれぞれ「" "」、「' '」、「` `」で囲った場合、文字列の体が それぞれ「" "」、「' '」、「` `」で囲われたようにふるまう。 素の文字列の場合は「" "」で囲まれたのと同じようにふるまう。 $str = "foo"; print <<'EOS'; <HTML> $str </HTML> EOS 以下のように << のあとをスペースにすると空行までが文字列として扱われる。 $str =

  • いやなブログ: 配列操作の比較表: 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)

  • Perl (5.8) での文字列の内部表象について返信 - daily dayflower

    UTF8 フラグあれこれ - daily dayflower について nobuoka さんよりツッコミをいただきました。 nobuoka 2008/03/11 21:15 こんにちは。”[Perl] Perl の Unicode 対応について” のエントリでトラックバックさせて頂きました nobuoka です。 内部表象 (内部形式: internal format) について気になる点があったのでいろいろ調べていたのですが、「内部形式は UTF-8 ではなく Unicode コードポイントをバイナリ化したものである」という結論に達しました。たとえば「é」という文字は内部形式では ¥xE9 というバイナリデータとして保持されているという結論に達しました。それは utf8 フラグが付いていても付いていなくても同様です。 つまり、このエントリで述べられている (A) 文字列(内部表象: UT

    Perl (5.8) での文字列の内部表象について返信 - daily dayflower
  • Route 477(2008-03-21)

    ■ [arc][scheme] ArcとSchemeのI/Oを比べてみる ArcのI/O関数のまとめページがあったので,Schemeの関数名と比較してみた. Arc: I/O 全体的に,かなりゴルフされています(笑).Schemeは長くても明確な名前を選ぶので尚更. 昔はSchemeの関数名は長すぎると思ってたんですが,最近は上手に抽象化すれば気にならないのかなぁと思ったりしてます. Input ArcScheme(Gauche)

    Route 477(2008-03-21)
  • ソースコードを読むための技術

    $Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ

  • Stevey's Blog Rants: Emergency Elisp

    Are you an Emacs user but don't know Lisp? Welcome to my first Emacs Lisp primer! This should hopefully help get you over the hurdle so you can have more control over your Emacs sessions. There are lots of ways to do things in Lisp, and some are "Lispier" than others. I'm going to focus on how to do things you probably already know how to do from C++ or Java. I'm mostly focusing on the language it

  • コメント: PHPは駄目な言語なのか? - スラッシュドット・ジャパン

    趣味でやっている人のことは、まあ、いいとして(踏み台にされる可能性はあるけど)、仕事PHPを使うときの注意を書いておこう。 コーディング規約を守る。組織にコーディング規約がないなら、Zend Framework PHP標準コーディング規約 [zend.com]を使う。オレ流コーディングスタイルは禁止。 内部コードにはEUC-JPかUTF-8を使う。入出力もできるだけShift JISを避ける。Shift JISを使う場合には2byte目に0x5Cを含む文字の動作を忘れずに確認する。 開発環境の警告レベルをE_STRICTにする。番環境ではdisplay_errorsをオフにする。 register_globals、magic_quotesはオフにする。 type hintingを積極的に使う。 スコープの長い配列をクラスでラップする。 プレゼンテーションとロジックを分割すること。プレゼ