謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

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の拡張も動的だから可能である(グローバル変数内の関数を書き換えて実現している)。 #個人的には静的言語のプログラムを拡張する…

>

gcc 4.3開発版で一部c++0xがサポートされ始めてる

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として扱えないので当り前ったら当り…

>

>

>

>

要求を仕様化する技術・表現する技術

って本を買った。まだ読んでる途中。以下思った事。要求仕様を設計・コードにするときに情報が欠落、分散するのが問題の一つと。要求仕様とコードの対応をプログラミング言語レベルで表せないかなーとか思った。 ドキュメント化コメントのようにコードへの説…

aliasのこうしてほしいなというメモ

forkしたいけど技術が無いのでミリ。できるようになったらやる予定。以下メモ。 単数タプル(alias) aliasを単数タプルの型にする。 void func(){} alias test=func;alias test="test"; タプルにexpressionを入れられるように import std.typetuple; int x; a…

アニメの黒歴史

黒歴史::アニメを見た。サイボーグクロちゃんの製作会社が倒産したこと知らなかった。クレシンとクリソツのOPだったってことぐらいしか覚えてないけど。 それとロストユニバースのヤシガニ事件は…覚えてるような覚えてないような。んで結局イージー・フイル…

pythonの内包表記

「内包表記的な何か」の意図が汲めなかったのでそのページの上のpythonの例をそのまま移植してみた。多分あってるはず。 private import std.stdio,std.typetuple; template range(int min, int max){ template _for(alias temp, int n=min){ int dummy; sta…

クラスやstructポインタでもopCallを呼んでほしい。

一応パッチ書いてみた>opcall.diff。 けどcastで問題あり。opCallがあるかどうかを調べるスマートな方法が分からない。 むしろD言語ではこう解決するべきなんだろうな>opcall2.diff。 GDCのstd/loaderでコンパイラがクラッシュしたけど。

また特殊ルールか>dmd 0.177

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);がエラーだっ…

yield

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と!!in

!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.の.は小数点として扱われてしまう…んだけどこの仕様はどうなんだろう。ま…

Ada

日本語の情報だけで適当に。 並列処理は微妙かも。組込みrange(0..10とか)はDでも欲しい所。 AdaのgenericはDに比べ一長一短って所。色々面白い機能があるが根本がアレ。 にしても文字だらけで可読性悪くてコンパイルが遅そうだなぁ。

Hello Worldはどう書くべきか

ただの自己満足。 class HelloWorld{ char[] toString(){ return "Hello World!"; } } void main(){ (new HelloWorld).print(); }

最近思うこと

そっちの方に疎いのだがふたなりやツンデレがなんであんなにもてはやされているかが分からない。 ふたなりは外面的な事であり、ツンデレはストーリ作家の逃げである(暴論)。 そんな俺の現在最強と思ってる組合せは男性器を持った僕っ娘×女性器を持った私っ子…

駄文

完璧な人はいない。それは分かってるのだが、第三者がその人を完璧な人と思ってる or 信じてる事が問題を起こしてる。

delegationパターン

部分的flyweightが簡単に書けるのが利点だと思う。後はstateパターンの隠蔽とか。他はちょっと思い付かない。 D言語のテンプレートがもっと賢かったら(static foreach/テンプレート引数に配列/名前付きタプル/identifier(ニュースグループのTemplate-based P…

Expression Template続き

静的演算オーバーロードに対応させてみた(opcast_r3.diff)が、templateが型を返すとうまく動かない。まぁ想定外な状況になるので当り前っていったら当り前だけどちょっと残念。 まぁ逆に全部インスタンスすれば問題ないのだろうけど、もともとopcast_rのパッ…

Expression Template

d:id:niha経由。前回のパッチ(opcast_r2.diff)が必須。コメントアウトしてあるところはテンプレートでコンフリクトしてしまう所。もしdmdが通るように変更されたらうまく動くはず。定数が入れられないのは仕様。正確には静的オペレータオーバーロードが無い…