2006-12-01から1ヶ月間の記事一覧
ので作ってみた。ようはC言語の匿名unionだわな。 色々言語的制限があるのがきつい。 import std.stdio; struct MultiType(TL...){ union{ TL tl; } U opCast(U)(){ foreach(int i,T;TL)static if(is(U:T))return tl[i]; assert(0); } static MultiType!(TL)…
シンプルな構文から構文糖によってC言語っぽい構文を作ってみるテスト。色々問題があるけど一日で考えたらこれが限界な罠。 型は実行型では無く論理型とする。コンパイル時に一番適した実行型に変換される。 型と値を同一視する。 コンパイル時にJavascript…
が全ての近未来的な言語の目標だと思う。 動的が必要かどうか…は必要だと思う。ダイナミックライブラリだって動的だし、Firefoxの拡張も動的だから可能である(グローバル変数内の関数を書き換えて実現している)。 #個人的には静的言語のプログラムを拡張する…
>
static_assertが実装されてる。これで面倒臭いヘッダのインクルードが(以下略 C++0xは魅力的なんだけど個人的には、前方参照が無い、マクロの構文とか仕様がアレ、実装と宣言が分かれてる…という時点で論外。 C++で書かれた物がC++0xによってコンパイル/実行…
>
gdcではasm文内に文字列としてgas構文が埋め込める。それとasm()の括弧の中に拡張インラインアセンブリ(ry gdcはparam(GNU_attribute, xxx)とparam(GNU_set_attribute, xxx)に(ry ラベルはaliasできない。まぁidentifierとして扱えないので当り前ったら当り…
>
>
>
>
って本を買った。まだ読んでる途中。以下思った事。要求仕様を設計・コードにするときに情報が欠落、分散するのが問題の一つと。要求仕様とコードの対応をプログラミング言語レベルで表せないかなーとか思った。 ドキュメント化コメントのようにコードへの説…
forkしたいけど技術が無いのでミリ。できるようになったらやる予定。以下メモ。 単数タプル(alias) aliasを単数タプルの型にする。 void func(){} alias test=func;alias test="test"; タプルにexpressionを入れられるように import std.typetuple; int x; a…
黒歴史::アニメを見た。サイボーグクロちゃんの製作会社が倒産したこと知らなかった。クレシンとクリソツのOPだったってことぐらいしか覚えてないけど。 それとロストユニバースのヤシガニ事件は…覚えてるような覚えてないような。んで結局イージー・フイル…
「内包表記的な何か」の意図が汲めなかったのでそのページの上のpythonの例をそのまま移植してみた。多分あってるはず。 private import std.stdio,std.typetuple; template range(int min, int max){ template _for(alias temp, int n=min){ int dummy; sta…
一応パッチ書いてみた>opcall.diff。 けどcastで問題あり。opCallがあるかどうかを調べるスマートな方法が分からない。 むしろD言語ではこう解決するべきなんだろうな>opcall2.diff。 GDCのstd/loaderでコンパイラがクラッシュしたけど。
import std.stdio,std.typetuple; struct A{ int a,b; static A opCall(int v, int w){ A a; a.a = v; a.b = w; return a; } } void main(){ A* a = &cast(A)TypeTuple!(0,0); writefln("%s:%s", a.a, a.b); }頼むから一般化してくれ…。 a(1,2);がエラーだっ…
JSについたらしいけど最初必要性が良く分からなかった…けどようは段階的なのを一つの関数にまとめられると。 bool test(char[] t){ t~="t"; yield true; t~="e"; yield true; t~="s"; yield true; t~="t"; yield true; while(true) yield false; assert(0); …
!inの対応要望はずいぶん前からある>unofficial D wish list。 A !in Bは!(A in B)、A !!in Bは!!(A in B)でcast(bool)(A in B)と等価になってほしい。 ついでに一般化して!+とか!&&とかも対応できると思った。 !!+ってA==-Bと等価で!!-って==と等価だよねと…
という主張。楽譜自体には著作権があるけどそれを文章化して別の人が再度楽譜に直せばおkなんじゃね? とかそんなこと思った。文章化された楽譜って何だろう。ってより音楽ってどのへんまで学問化されてるのかなぁ。花粉症に効く音楽とか聞いたことあるけど。…
と常々思う。最近の民営化、国の小型化とは逆行するけど。 そうすれば補助金問題(※儲からない会社は潰す)も不正問題(※定期的にチェックを入れる)も無くなる。 それと統合するか分割するか競争させるかも基準を設けて全て国が判断すればいい。その業界でほぼ…
VBやJSを使ってた人から見れば import std.stdio; void main(){ writefln(22.toString()); }が通らないのに違和感があるはず。ってより未だに違和感が取れない俺ガイル。 この場合22.の.は小数点として扱われてしまう…んだけどこの仕様はどうなんだろう。ま…
日本語の情報だけで適当に。 並列処理は微妙かも。組込みrange(0..10とか)はDでも欲しい所。 AdaのgenericはDに比べ一長一短って所。色々面白い機能があるが根本がアレ。 にしても文字だらけで可読性悪くてコンパイルが遅そうだなぁ。
ただの自己満足。 class HelloWorld{ char[] toString(){ return "Hello World!"; } } void main(){ (new HelloWorld).print(); }
そっちの方に疎いのだがふたなりやツンデレがなんであんなにもてはやされているかが分からない。 ふたなりは外面的な事であり、ツンデレはストーリ作家の逃げである(暴論)。 そんな俺の現在最強と思ってる組合せは男性器を持った僕っ娘×女性器を持った私っ子…
完璧な人はいない。それは分かってるのだが、第三者がその人を完璧な人と思ってる or 信じてる事が問題を起こしてる。
部分的flyweightが簡単に書けるのが利点だと思う。後はstateパターンの隠蔽とか。他はちょっと思い付かない。 D言語のテンプレートがもっと賢かったら(static foreach/テンプレート引数に配列/名前付きタプル/identifier(ニュースグループのTemplate-based P…
静的演算オーバーロードに対応させてみた(opcast_r3.diff)が、templateが型を返すとうまく動かない。まぁ想定外な状況になるので当り前っていったら当り前だけどちょっと残念。 まぁ逆に全部インスタンスすれば問題ないのだろうけど、もともとopcast_rのパッ…
d:id:niha経由。前回のパッチ(opcast_r2.diff)が必須。コメントアウトしてあるところはテンプレートでコンフリクトしてしまう所。もしdmdが通るように変更されたらうまく動くはず。定数が入れられないのは仕様。正確には静的オペレータオーバーロードが無い…