タグ

ブックマーク / www.kmonos.net (8)

  • CプログラマのためのD言語 - プログラミング言語 D (日本語訳)

    熟練したCプログラマは誰でも、 自然とさまざまなイディオムやテクニックを身につけているものです。 新しい言語を学ぼうとすると、時にこれらのイディオムに慣れすぎたせいで、 同じことを別の言語でどう実現するのかわからなくなってしまいます。 そこでここに、C のよく知られたテクニックと、対応するDでのやり方を集めてみました。 C にはオブジェクト指向関連の機能はありませんので、 オブジェクト指向の話は C++ プログラマのための D 言語 に分けて書きました。 C のプリプロセッサについては Cプリプロセッサ vs D で扱っています。 型のサイズを取得する 型の最大・最小値を取得する 組み込みデータ型 特殊な浮動小数点数の値 浮動小数点数の剰余 浮動小数点数の比較でのNaNの扱い assert 配列要素の初期化 配列の要素ごとのループ 可変長配列の作成 文字列連結 整形print 関数の前方参

  • 1+1=2 を証明(C++で) - d.y.d.

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

  • d.y.d. memo: POPL 2

    17:17 08/01/30 ところで C++JavaScriptPHP が批判されてるのを見ると思わず何か言いたくなってしまうのだけど、 考えてみるに、他の言語だと割とどうでもいい。そういう意味では、今の自分が好きなプログラミング言語は この3つということになるのかなあ……などと徒然なるままに思いました。 単純に、つきあいが長い方から3つというだけかもしれない。 いやしかし、PHPに対する批判の多くはその通りであるとは思うのですが。 Attacking PHP で触れられてる「リストであり辞書でもある」 array ってあれは普通に便利じゃないです? 結構他の言語でも欲しくなるのですが。 17:08 08/01/29 PHP で Yコンビネータ PHP じゃ Y コンビネータつくれない と聞いて。 <?php // PHPでは関数呼び出しは 関数名(...) か 変数(...

  • d.y.d. Pluggable Type Systems

    19:27 08/02/29 不動点ふたたび LtU で "Data Types a la Carte" を読みました。これの鍵となる技は「型コンストラクタに対する不動点演算子」だと思うのだけど、 あれ、なんで俺これ考えたことなかったんだ…?と不思議に思うくらい楽しげなアイデアですね。てい。 // 不動点演算子 via テンプレート。Dで。 // // Haskell でいう"普通の"不動点関数 fix f = f (fix f) と同じようなもの // = の代わりに継承になっちゃってますけど、まあ似たようなものです class Fix!(alias F) : F!(Fix!(F)) {} 不動点演算の実装は題ではないので、Yコンビネータみたいな無駄な複雑化はしない方針で。 さて、これを使って class Pair(T) { T left; T right; } 2個同じ型の値のペアを

  • ちょっとだけマイナーなSTLの話 - d.y.d.

    21:23 09/11/29 ドラクエ3 ドラゴンクエスト III モバイル版 が配信開始されたと聞いてはプレイせずにはいられない、ということで、さっきクリア。 内容は 「SFC版のベタ移植 - すごろく場 + AI戦闘」 ですね。 すごろく場が減った分、限定アイテムが他の場所に移動 (パワーベルト・ドラゴンテイル・ドラゴンローブ・グリンガムのムチが小さなメダル賞品に。 光のドレスがゾーマ城の宝箱に。雷神の剣も宝箱だった気がする。あと、小さなメダルの総数が110枚で変化無しらしいので、 すごろく場にあった分が通常マップに押し出されて、ところてん式に押された炎のブーメランもメダル賞品化)。 不思議なボレロと女神の指輪は見てない。なくなった? AIは、マヌーサ/ラリホー/マホトーン辺りを効く相手にだけ積極的に使ってくれるので参考になる&便利。 勇者もAI駆動にできるモードが欲しかった 細かいと

  • d.y.d.

    20:52 09/07/30 こんすとぽ 確か cppll でかなり昔に見た記憶があるんですが、C++ のこれ int I = 42; const int CI = I; // OK! int* pI = &I; const int* pCI = pI; // OK! int** ppI = &pI; const int** ppCI = ppI; // コンパイルエラー! int** から const int** への変換はできません! は何故こういう仕様になっているのでしょうか?というのは面白いクイズだなーと。 「2番目が安全なのと同じで、3番目も型的には安全では?」と一瞬思ってしまうのですが、 そんなことはなく、このキャストを許すと const なはずのものを書き換えられてしまいます。 具体的にどうやるかは読者の皆様への宿題です(←偉そう)。 知った当時はよく仕様考えてあるなーすげー

    rawwell
    rawwell 2009/08/01
    言及しました-> http://bit.ly/NN93k
  • 思考実験: returnを関数と思ってみる話 - d.y.d.

    21:07 09/03/26 zipWithN twitterでいけがみさんが張ってらした論文が面白かったです。 map f [a1, a2, ..., an] ==> [f a1, ..., f an] zipWith f [a1, ..., an] [b1, ..., bn] ==> [f a1 b1, ..., f an bn] zipWith3 f [a1, ..., an] [b1, ..., bn] [c1, ..., cn] ==> [f a1 b1 c1, ..., f an bn cn] ... zipWith7 f [a1, ..., an] [b1, ..., bn] ... [g1, ..., gn] ==> [f a1 b1 … g1, ..., f an bn … gn] Haskell98 の標準ライブラリの関数ですけど、 1引数関数 f と1つのリスト as

    rawwell
    rawwell 2009/07/15
    "「C や JavaScript 等の関数から返る"return"を、 first-class object と思ってみると面白いんじゃないでしょうか」"
  • d.y.d.

    rawwell
    rawwell 2008/12/20
    お疲れ様です!!!
  • 1