タグ

2009年10月23日のブックマーク (8件)

  • 最速インターフェース研究会 :: 実践JavaScriptリファクタリング、その2

    連載すんの? リファクタリングとか嘘で実は実践ビルトインオブジェクトハックなんだけど。 例題 配列 a = [3,5,4,2,1] から一番小さな値と、一番大きな値を取り出すにはどうすればいいか。 多分昔はこんな風に書いてたと思うんですよ。 a = [3,5,4,2,1]; for(i=0;i<a.length;i++){ if(i == 0){ min = a[0]; max = a[0]; } if(min > a[i]){min = a[i]} if(max < a[i]){max = a[i]} } 模範解答として、後先考えないやり方を提示しておく。 a = [3,5,4,2,1]; min = a.sort().shift();// 1 max = a.sort().pop(); // 5 短い。ただし、これをやるとaの内容は並べ替えられて最初と最後の要素が取り除かれる。 a /

  • 最速インターフェース研究会 :: 実践JavaScriptリファクタリング

    同じ事をやるにも、いろんな書き方があるわけでいかにして短くてわかりやすいコードを書くかというノウハウを紹介します。 例として"abcde"を80回繰り返した文字列を作るとして実際に自分のコーディングスタイルがどんな風に変化していったのか、という。 短くなるのは確かなんだけどわかりやすいかというと、人によるかもしれない。 グローバル関数を定義2年前なら、多分こういう具合だった。 //ふつうに関数として定義する function x(str,num){ var tmp = ""; for(var i=0;i<num;i++){ tmp += str; } return tmp; } x("abcde",80) Stringのメソッドとして定義1年前だとこんな感じ。 //Stringのメソッドとして定義する String.prototype.x = function(num){ var tmp

  • OCaml 標準ライブラリ探訪 #1.2 Pervasives 補遺 - camlspotter’s blog

    関連リンク: OCaml 標準ライブラリ探訪 #0 その他は上の記事のトラックバックから。 他の方同士の会話からでも勝手に抜き取ります。すいません。 [...] failwithf "hoge: %s" "hii" ();;でも普通に動きます。でもなんで()付きで [...] chunjpさん これは、ご紹介した failwithf の実装 val failwithf : ('a, unit, string, unit -> 'b) format4 -> 'a let failwithf fmt = Printf.kprintf (fun s () -> failwith s) fmt の実装で、例えば、 failwithf "something has failed: %s" reason ();; の様に、なぜ、わざわざ最後に () が必要なのか?ということですね。 val failw

    OCaml 標準ライブラリ探訪 #1.2 Pervasives 補遺 - camlspotter’s blog
  • OCaml 標準ライブラリ探訪 #1.1 Pervasives 補遺 - camlspotter’s blog

    関連リンク: OCaml 標準ライブラリ探訪 #0 OCaml 標準ライブラリ探訪 #1: Pervasives 御好評のようでいくつか twitter でつぶやきを頂いております。私がフォローもしくはキーワード OCaml で監視して見つけたモノのみしか追えませんが、、、まあつぶやいた皆様にとっては自明な事かもしれませんが、tutorial として価値がありそうなので。 そうえいば、 Pervasives と既定義の違いはなんなんだろう。全部 Pervasives でいいような。 ytominoさん predefined.ml で既定義になっているデータ型、コンストラクタ、例外はコンパイラ内部で型推論時や最適化時に使用されています。例えば、array.(x) (array の要素アクセス) という式では x の型は int でなければいけませんが、この型推論を行うには int 型の存在を

    OCaml 標準ライブラリ探訪 #1.1 Pervasives 補遺 - camlspotter’s blog
  • ネットコミュニケーションにおける「なまえ」の役割 - シロクマの屑籠

    実名・匿名論争が論じるべきテーマはたった一つ: 304 Not Modified 実名匿名論争じゃないけど: やまもといちろうBLOG(ブログ) ハンドルネームか実名かを問わず、誰もがインターネット上でごく当たり前に名乗っている「なまえ」。普段は「なまえ」の役割を振り返ってみることなど無いけれども、上のリンク先などを読んでいるうちに、「なまえ」ってすごく大事だよなぁとしみじみと感じたので、振り返ってみようと思う。 幸い、日のネットコミュニケーションは『2ちゃんねる(以下、2ch)』のような「名無し」が占める割合がかなり大きいので、逆に「なまえ」を欠いている時にどんな出来事が発生するのかを比較するためのサンプルを簡単に見繕うことができる。以下、『2ch』の匿名コミュニケーションを参照しながら、話を進めていこうと思う。 「なまえ」がなければ発言は誰のものにもなれない まず、当たり前のことだけ

    ネットコミュニケーションにおける「なまえ」の役割 - シロクマの屑籠
  • Hello, Boost.PropertyTree! - Cube Lilac

    追記 (2010/03/08) find()の戻り値で、見つかったかどうかの判定をit != pt.end()ではなくit != pt.not_found()と書くようになり、find()の戻り値の型もiteratorからassoc_iteratorに変更されています。この辺りは、Boost 1.42.0時点ではドキュメントが古いままなので注意してください。 Boost.PropertyTreeでXML読み込み - Faith and Brave - C++で遊ぼう 上記のように,find() のインターフェースに変更があったようです.早とちりしてしまったのですが,iterator → assoc_iterator, end() → not_found() になった訳ではなく,find() の戻り値に関してのみ assoc_iterator や not_found() を利用する形になった

    Hello, Boost.PropertyTree! - Cube Lilac
    hitsujibane
    hitsujibane 2009/10/23
    Boost.PropertyTreeについて
  • 1+1=2 を証明(C++で) - d.y.d.

    01:29 09/10/28 七不思議HA 七不思議ハードオオイカリパッチ深遠100F到達しました。 やった! (→ リプレイファイル) サブ剣に 日刀[封必-脱封守]+17。盾は深層で[潰][爆][祓]を順次追い出して左のスクリーンショットが最終形。 [冷]も消してよかったな。保存の壺フィーバーが来たのでなんとかクリアできた感じでした。 普通の引きだと70F前後で大抵力尽きる。 普通にバランスのとれてるノーマル版に、 ・シレンで言うところのカンガルー3種を投入し ・主人公LVアップ時のHPと攻撃力の上昇量を減らし ・床落ちアイテム数を減らし敵のドロップ率も減らし、 たらどうなるでしょうかというパッチ。このゲーム4倍速まで上がるのでオオイカリ状態がより一層ヤバい。 代わりに幾つかの印の効果が強化されてて、レアアイテム出現率がやや上がっているので、 その辺りを鍵に頑張ることになります。 ト

    hitsujibane
    hitsujibane 2009/10/23
    C++で1+1=2の証明
  • Haskellで書かれたOS - MEMO:はてな支店

    House - Haskell User's Operating System and Environment House is a demo of software written in Haskell, running in a standalone environment. http://programatica.cs.pdx.edu/House/ HaskellでスタンドアローンのOSが書けるとは。 どうでもいいけど、頭文字を順番にとったら、HouseじゃなくてHuoseなんじゃないだろうか。 House 0.8.93 (vanilla House ported to GHC 6.8.2) [January 22nd, 2009] http://web.cecs.pdx.edu/~kennyg/house/ 最新版は上記の別サイトにある。 ここからfdのイメージをダウンロードしてq

    Haskellで書かれたOS - MEMO:はてな支店