[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/05 11:17 / Filesize : 219 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

D言語 Part15



1 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 20:16:30 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)
ttp://www.sun-inet.or.jp/~yaneurao/dlang/
ttp://wisdom.sakura.ne.jp/programming/d/

952 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 18:12:02 ]
>>951
変数に格納したりするなら、エラーの出る場所が違うな。

953 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 18:26:50 ]
みんな分かってるみたいなのに
q{}の意義が全然わからなくて俺涙目
>>949 それをどういうときに使うのかと

954 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 18:48:38 ]
mixin て何か分かってんのかね、おまいは。

955 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 19:00:36 ]
わかりやすく説明すると、トークン文字列 q { ... }の内部の文字列は、Dのトークンであるので、
Dの字句解析をパスしなければならない。
つまり、文字列が、Dのソースとして解釈可能であるかどうかを判別できる。

956 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 19:01:46 ]
q{}なんてあったの初めて知った。
コードを文字列として渡すときに、ダブルクォートの中にコードを書くなんていう、
エディタ支援が受けられない(どころかむしろ邪魔になる)苦行に挑まんで済むわけね。

957 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 19:04:00 ]
え?そうなの?
俺は、変態なことやってる場所を簡単に検索できるためだと思ってた。

958 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 19:50:02 ]
import std.stdio;
void main() {
const a1 = "\"hoge\"";
mixin("string c1=mixin(\"mixin(\\\"\\\\\\\"huga\\\\\\\"\\\")~\\\"hoge\\\"\") ~ mixin(a1);");
writeln(c1);

const a2 = q{q{hoge}};
mixin(q{string c2=mixin(q{mixin(q{q{huga}})~q{hoge}}) ~ mixin(a2);});
writeln(c2);
}
どっちがいいかとか

959 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 20:19:35 ]
import std.stdio;
void main() {
const C = q{ mixin(A) + mixin(B) };
const A = q{ a };
const B = q{ b };
int a = 10;
int b = 20;
writeln( mixin(C) );
}
こんなことできたりとか

960 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 20:39:42 ]
なんという遅延評価…



961 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 20:49:09 ]
import std.stdio;
void main() {
const s = q{mixin(s)};
writefln(mixin(s));
}

962 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 20:59:16 ]
q{}はmixin用ってことでおk?

963 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 21:00:15 ]
import std.stdio;
alias string symbol;
template add(symbol o, symbol v) {
const add = `mixin( q{`~o~`} ) + mixin( q{`~v~`} )`;
}
void main() {
const c = add!(q{a},q{b});
int a = 10;
int b = 20;
writeln(mixin(c));
a = 100;
b = 200;
writeln(mixin(c));
}

964 名前:953 mailto:sage [2007/11/17(土) 22:21:54 ]
>>954
mixinは大丈夫

他のレスは後で試してみます
なんか分かりそう
ありがとん

965 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 03:48:38 ]
べつに構文はvalidじゃなくとも字句だけDの範疇ならOKだよね?
q{int int class class invalid;}とかやっても大丈夫だし。

966 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 04:33:28 ]
実行時mixinないかなー

967 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 04:39:23 ]
opStarAssignマダー

968 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 07:46:51 ]
亀ですまんけどちょっと質問>>542どうやって?
int a,b,c;
Tuple!(a, b, c) = Tuple!(10, 20, 30);とかって無理じゃね?

969 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 09:04:33 ]
>>968
template Tuple(T...) { alias T Tuple; }

970 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 09:07:40 ]
もしかしてDMD古いとできない?



971 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 11:12:39 ]
>>970
1.023/2.006 でバグフィックスされてできるようになったのでそれより古いとダメ

972 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 13:26:30 ]
obj[index] = value;
はopAssignでオーバーロードできるけど、
obj[index] += value;
みたいな複合代入をオーバーロードする方法ってある?

973 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 13:36:38 ]
opAddAssign

974 名前:デフォルトの名無しさん [2007/11/18(日) 13:39:55 ]
あ、配列か。
opIndexでオブジェクトを返すとか

()がいるけど

975 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 14:22:19 ]
>>971
1.020使ってたよ・・・(´・ω・`)
バージョンうpしたいけどgdcがなあ・・・

976 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 14:39:31 ]
opIndexOpAssign
opStarAssign
opStarOpAssign

このあたり追加して欲しい

977 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:00:41 ]
Opってなんだ?

978 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:27:53 ]
AddとかDivとか

979 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:29:19 ]
opSliceOpAssign
opCallAssign
opCallOpAssign

もお願いします!

980 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:26:29 ]
obj(arg) = val;



…さすがに要らんと思う。



981 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:27:55 ]
obj(arg) += val;
きんもーwww


982 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:34:26 ]
perlだと関数呼び出しがlvalueになれるよな。
まあ、下駄雪駄を合わせたプロパティ的用途か、スライスへの代入の用途が主だから、
Dなら別の機能で間に合ってるけど。

983 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:51:25 ]
opCallで内部クラスでも返せばよくねwwwww

984 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 23:02:43 ]
どうぞ。

D言語 Part16
pc11.2ch.net/test/read.cgi/tech/1195394435/


985 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 08:06:43 ]
あとすこしで落ちるからたわ言など。

公式で、ユーザライブラリコンテストとかやらないかねぇ。
一回総集編を作ってほしい。
現状、フレームワークは決定打ないし、グラフィックライブラリはないし、サウンドライブラリも無い。
でもなぜかZIPはあるし、細かいスパイスのきいたライブラリがそろってるのもまー事実。
Tangobosの問題もあるし、V2系のラストで是非やってほしいと結構おもてる。
問題はいつV2系が安定するかだなぁ。。。

986 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 08:23:40 ]
あと15レス分は何に使うかな。

987 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 08:31:00 ]
Truetypeフォントを動的ロードできて、さらに描画できたら、結構汎用性あがるかなぁ。
ファイルフォーマットの内容しらないし、ライセンスがどうなってるかは知らないけど。
プログラムの場合ってラスタフォントのほうが相性いいのかなぁ。

988 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 08:41:07 ]
インターフェースの設計っていい叩き台ないもんですかね。
現状、Bitmapのインターフェースの設計をてきとーにやってるんですけど、
うまく全部(1〜32びっと)に当てはまるインターフェースが良くわからないです。
総合あーかいばプロジェクトは割りとその辺の設計が良かったから普及したようなもんだし。
なんか、いい手はないもんかなぁ。

989 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 09:04:06 ]
規制に引っかかったので自重

990 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 13:47:25 ]
>>982
perlのlvalueってあれ単に参照返してるだけに見える俺は異常?



991 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 16:26:04 ]
中間言語導入による部分的な動的コンパイルの実現!

992 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 16:41:26 ]
中間言語いらんからコンパイラを標準ライブラリに(ry

993 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 16:47:31 ]
>>988
よくわからんが、
void[]でビットイメージを保持しておいて、
インデクサを用いて適切に変換するようにすればいいんじゃなかろうか。

994 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 17:04:36 ]
>>988
>707だけど同じ目的なので設計を話し合ってみませんか?
私はピクセルに触る部分だけ専用の関数を作って、これをピクセルフォーマットごとに変えるようにし、
それ以外の塗りとかその他は必ずその関数経由で触るように設計しました。

あとで自分がやった内容についてファイルをうpしてみます。

995 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 17:23:34 ]
>>990
参照返してるだけだな。
ただの構文糖

996 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 18:17:27 ]
俺の欲しいもの:
* プロパティに対する複合代入
* ラムダ式

をるたん、クリスマスプレゼントまってます。

997 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 18:33:38 ]
それまで>996はいい子にしてないとな

998 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 20:28:25 ]
D言語 Part16
pc11.2ch.net/test/read.cgi/tech/1195394435/l50


999 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 20:30:25 ]
次スレ
D言語 Part16
pc11.2ch.net/test/read.cgi/tech/1195394435/l50


1000 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 20:30:45 ]
1000



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<219KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef