1 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 01:09:54 ] プログラミング言語 D について語るスレッドです。 過去スレは >>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)
331 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 00:08:11 ] { scope hoge = new File("foo.bar", FileMode.OutNew); with(hoge){ writefln("Foo"); } } これを、 with(scope new File("foo.bar", FileMode.OutNew)){ writefln("Foo"); } こうかけるようになったらいいなって思った。
332 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 00:08:21 ] なんかD言語のタプルなんてどうでもよくて Rubyの話をしに来てるみたいだな
333 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 03:03:18 ] >>331 文法上は"with(Expression)"だからなぁ。 scopeは属性だからExpressionにはくっつけられないのよね。 でも、withのExpressionの値を保持しておく変数って、内部的に生成されてるはずだよね? だとしたらその変数の型とかって、値から推論されて決まってるのかな。 「勝手に推論が使われて明示的な宣言ができない」部分があるってのは、良くない事な気がする。 推論は明示的な宣言を省略して簡略化できる機能、であってほしい。 ……"with"を文法上は変数宣言っぽく扱って、修飾子がつけられるようにする、とか。 scope synchronized char[] with(["foo", "bar", "baz"]){ writefln("Foo"); } ああ、scopeとsynchronized以外に意味のある宣言が見当たらないや。 scopeのブロック外に出てるとかキモいし。
334 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 04:31:48 ] 絶賛放置中してしまっててすんません
335 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 08:31:38 ] >>334 ? 1,日本語覚えたてのウォルターたん 2,アスカが見参しちゃってるinabaたん 3,誤爆
336 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 09:31:40 ] 4, Dコンパイラ 5, GDC
337 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:40:19 ] 7,オレ達 8,2byte圏のみんな
338 名前:337 mailto:sage [2007/02/25(日) 22:41:05 ] あぁw 6忘れてたw
339 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:46:16 ] 6 が絶賛放置中
340 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 01:55:53 ] 6, 後楽園遊園地で僕と悪臭
341 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 05:30:09 ] >>340 空気嫁
342 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 07:03:36 ] >>341 無理強いイクナイ
343 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 09:46:49 ] あーあ…… いや、流れが潰れたからこれでいいのか。
344 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 10:37:13 ] Dでコンソールアプリ作って QtでGUIフロントエンドを作ると良い感じかもしれない。
345 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 12:34:26 ] >>344 D言語のQtportingってもうあるのか?
346 名前:345 mailto:sage [2007/02/26(月) 12:37:04 ] あっそっか、デザイナを使うってことね。
347 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 13:38:01 ] Dにポーティングされていればベストなんだけどねぇ。 しかしQtのおかげでまたC++使い出すようになった・・・
348 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 15:24:33 ] TrolltechがDに乗り換えるように仕向ければいいんだよ! でもそんなことしたらKDEが凄い事になりそうだな。
349 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 16:02:40 ] あるパッケージ(=ディレクトリ)内のモジュールを一括してimportする方法ってありましたっけ?
350 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 16:21:40 ] ない hoge.allというファイルでまとめてインポートする
351 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 16:49:45 ] ここで流れをぶった切って質問。 Dって基本的な言語仕様とライブラリ関係のバグは一通り取れてる感じ? ネイティブでモダンな言語として、C/C++の代わりにできれば使いたいんだけど。 (スレを一通り読んだ感じでは非常に心配なんだが・・・・)
352 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 16:52:21 ] D言語はいつまでもunstable精神で躍進して参ります
353 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 17:34:55 ] 基本的な所の仕様が全然駄目だわな。
354 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 17:40:36 ] Shift-JISとかEUC-JPとかUTF-16を扱いたいなら別の言語を使った方がいい。 UTF-8しか使わないならお勧め。
355 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 17:47:56 ] QtってGPLでしょ。話にならない。LGPLならいいんだけど。
356 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:17:49 ] >>351 本当にC/C++に疲れてるんだったら触れてみるのも良いかも。 まぁ大規模な仕様変更は無いにしても、機能追加やバグフィックスはまだあるだろうけどね。
357 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:20:50 ] すまん。書いてる途中でエンター押しちまった・・・ 後、他のやつが言うようにエンコードあたりはダメだけど、その辺はtangoとか使えば良いかもしれん。
358 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 21:48:23 ] >>355 金払えばソース公開しなくていいよ
359 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 22:34:12 ] GPLをそこまで毛嫌いする意味がわからない。 やっぱり売り物作ってると邪魔なのかなぁ。
360 名前:デフォルトの名無しさん [2007/02/26(月) 23:00:32 ] >>359 キモイGPL信者にGPLのソフトをしつこく薦められたことがあるから。
361 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:02:21 ] 感染力強すぎるからなあ 他に使いたいライブラリとぶつかってしまう場合もしばしばある
362 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:07:57 ] >>360 なるほど。 なんにせよ押し付けはよろしくないよね。 俺も気を付ける。 >>361 まぁ感染力強すぎるのはあるよね。
363 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 00:01:49 ] >>362 >なんにせよ押し付けはよろしくないよね。 >俺も気を付ける。 頼むからそうしてくれ。 オープンソース系のソフトで、よさそうなのがあっても 自分が他人からキモイ信者達と同じ人種に見られるのが 恥ずかしくて採用を見送ることがよくある。
364 名前:351 mailto:sage [2007/02/27(火) 00:04:03 ] 遅れたけど、みなさん情報感謝。 とにかく使い始めてみる。
365 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 18:54:51 ] const char[][] x = ["a","b"]; static assert(x[0] == "a"); これってできないの?
366 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 19:21:59 ] >>365 static assert(x[0] == "a"); → static assert(x[0] == 'a'); じゃないか?
367 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 19:28:18 ] >>365 現状では無理。もしそれをできるようにするならdmdの配列リテラルの設計を文字リテラルと同じようにしないといけない。
368 名前:365 mailto:sage [2007/02/27(火) 19:44:13 ] あぁ、むりなんだ。なんか直感的じゃないね。 特別な理由でもあるんかな
369 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 19:46:59 ] Walterタソが配列リテラルの実装を手抜きしただけな予感。
370 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:41:12 ] constが型修飾子じゃないから、 配列xがconstなだけでxの要素(である配列)はconstじゃないよ、 とかそういう理由かな。
371 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 23:10:47 ] >>370 違うとおも。文字列リテラルだと宣言された型をスルーして値型(静的配列)として内部で扱ってたはずだけど、配列リテラルでは宣言時点でオブジェクトに書き込むようになってたはず。
372 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:43:33 ] なるほど 仕様バグという話じゃないなら、今後の改善に期待か
373 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 06:50:58 ] 非常に亀レスなんだけども lazyをdelegateに変換する時にこういうのはどうだろう int delegate() dg; void hoge( int delegate()[] d... ) { dg = d[0]; } int n = 12; hoge(n);
374 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 15:14:23 ] >>373 どこにlazyが
375 名前:デフォルトの名無しさん [2007/02/28(水) 19:24:01 ] age
376 名前:C++最強伝説 mailto:sage [2007/02/28(水) 20:56:33 ] [C++] 攻撃:97 素早さ:98 防御:98 命中:54 運:66 HP:273 [D] 攻撃:97 素早さ:15 防御:22 命中:92 運:42 HP:291 C++ vs D 戦闘開始!! [C++]の攻撃 HIT [D]は149のダメージを受けた。 [D]の攻撃 HIT [C++]は69のダメージを受けた。 [C++]の攻撃 HIT [D]は191のダメージを受けた。 [C++]が[D]を倒しました(ラウンド数:2)。 魔法のMD5 - MD5バトル www.newspace21.com/mix/btl.php
377 名前:デフォルトの名無しさん [2007/02/28(水) 23:30:10 ] それにしてもC++は強すぎないか
378 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:36:50 ] 一番良い線行ってるC#ですら大差で負けてるし
379 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:47:03 ] トキに勝てるのを探す途中で試したなあ>C++ 結構強くて「おお!」とか思ったのを覚えてる。Dも結構強いな。
380 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:48:17 ] このスレ見てたらノウハウとバッドノウハウの区別がつかなくなったので区別を教えて欲しい
381 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:56:39 ] バッドノウハウ ソフトウェアなどを使いこなすために、 ストレスを感じながらもしぶしぶ覚えなければならないようなノウハウ。 高林哲による造語。 氏によると、バッドノウハウは、 複雑な設定を「奥が深い」として有難がってしまう マニア独特の感性によってはびこるという。
382 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 00:31:33 ] 構造体にstatic opCallで疑似コンストラクタつけるのはどうなの? あれは公式に認められた使い方?
383 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 00:42:37 ] >>382 それ認めるくらいなら構造体用のコンストラクタ付けるんじゃね、うぉるたーたんなら
384 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 03:05:31 ] >>382 www.kmonos.net/alang/d/struct.html > opCall がその構造体でオーバーライドされていて、 > 別の型の値で構造体が初期化されようとしているときには、 > opCall 演算子が呼び出されます: ということだから、 opCallを初期化用途に使うこともOKじゃないかな、たぶん。
385 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 13:07:45 ] foobarとhogefugaではhogefugaの方が強いんだなw
386 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 10:26:51 ] import mylibs.hoge; なんてやってると import std.hoge; でなくて import phobos.hoge; の方がいい感じに見えてくる
387 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 17:29:53 ] つまりphobosを標準ライブラリとして認めないということだな! 賛成
388 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 17:30:55 ] 勢い余ってsakura editorのD言語キーワード作っちゃたんだけど、既存なら自殺する。
389 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 17:38:11 ] さらしてからにしろよw
390 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 18:37:15 ] >>388 tarballでくれ
391 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 18:58:53 ] ttp://www.digitalmars.com/d/lex.htmlを見れば1分で作れそうな気もするんだがね
392 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 19:10:26 ] sakura editorのD言語版じゃなくてキーワードだけかw ShiftJISやEUCの漢字コードの変換がどうしてもしたくて、 勉強のためにgreen padをいじってD版でも作ろうかとなんとなく考える俺ガイル
393 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 02:32:12 ] >>392 後は頼んだ
394 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 09:09:28 ] プログラムほとんど初心者なんだが、readStringみたいな int[] hoge readInt(5); があったらいいなと思うんだけれど
395 名前:394 mailto:sage [2007/03/03(土) 09:12:07 ] ごめん >int[] hoge readInt(5); int[] = hoge readInt(5);
396 名前:394 mailto:sage [2007/03/03(土) 09:14:20 ] なにしてんだか 完璧レス汚し >int[] hoge readInt(5); int[] hoge = readInt(5);
397 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 09:39:12 ] んなもん、自分で書きゃいいじゃん。 import std.stream,std.bind; int delegate(int delegate(inout T)) readTApply(T)(Stream strm,int n){ return bind(function(Stream strm,int n,int delegate(inout T)dg){ T v; while(n-- && strm.readf(&v)) if(int r = dg(v))return r; return 0; },strm,n,_0).ptr; } T[] readT(T)(Stream strm,int n){ T[]r; foreach(x;readTApply!(T)(strm,n))r~=x; return r; } import std.cstream; void main(){ foreach(c;readT!(int)(din,2)) printf("%d\n",c); }
398 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 14:42:16 ] dmdで作られたexeってどこに配置されるの?
399 名前:398 mailto:sage [2007/03/03(土) 15:22:11 ] すみません、調べていくうちに Document and Setting\(ユーザ) にexeが作られると言う事は分かったんですが、 これを他の場所に変えるにはどうすれば良いんでしょうか
400 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 15:23:59 ] 日本語でおk
401 名前:398 mailto:sage [2007/03/03(土) 15:25:26 ] 度々すみません、自己解決しました。
402 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 16:08:46 ] ( ゚д゚)ポカーン
403 名前:3_9_8 mailto:sage [2007/03/03(土) 16:27:37 ] ><
404 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 16:30:22 ] 初々しいねえ。
405 名前:デフォルトの名無しさん [2007/03/03(土) 16:51:07 ] 久々なんだけど名前空間どうなった?
406 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 17:01:07 ] dsource.orgがうまく見れないの俺だけ?
407 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 17:19:28 ] >>406 にゅーすぐるーぷみれ
408 名前:デフォルトの名無しさん [2007/03/03(土) 22:55:21 ] やべぇ、今日中にbudを手に入れないとダメなのに・・・
409 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 23:11:59 ] なんだこの流れ
410 名前:デフォルトの名無しさん [2007/03/04(日) 00:17:04 ] Budのバイナリのアドレスを trac.dsource.org/projects/build/browser/downloads/bud_win_3.04.exe?format=raw から www.dsource.org/projects/build/browser/downloads/bud_win_3.04.exe?format=raw に変えたら事故解決してしまいました。
411 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:40:40 ] Dのバグジラ見ると、オープンなヤツがかなり残ってると思うだが、 この規模のプロジェクトで、この数はふつ〜なの? なんかをるたーたんがおもろいとこだけ推し進めてる感があるんだが・・
412 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:41:39 ] 所詮は趣味の世界なんだろ
413 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:13:20 ] 要するに、stableのための作業はほとんどやってないということか。
414 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:36:31 ] stable の前に、言語仕様を固めたいんじゃないか?
415 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 20:06:00 ] どうせ2.0リリースの手前にバグフィックス月間があるでしょ。 dmd 1.0なんてしょせんただの通過点だし。
416 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 20:46:26 ] おまえら所詮って言葉好きだな
417 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 20:47:20 ] stableなDなんかDじゃないんだい!
418 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 21:29:36 ] >>416 全部同一人物だしこのスレ3人しかいないんだけどな。
419 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 23:23:42 ] 四人目です。XCodeで使う方法が分からず挫折。
420 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 23:46:14 ] 言語仕様を固めるにも、いろいろユーザから要望は来るし、 ウォルター自身もいろいろ浮かんじゃって……って、一向に安定しない予感。 そんな状況だけど、それでも使いたくなっちゃう俺なんだけど。 ホントに仕様固めるとしたら、 せめて配列リテラルの型は明示できるようにしといて欲しいなぁ……。 あと連想配列のキーにopCmp要求するのやめて'hashCmp'とか別のにしてとか、 せめてmain引数くらいはちゃんとUTF-8変換しといてとか、 ああ、山積みだ。
421 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 23:49:07 ] 構造体を静的にしかあーいう形で初期化できないのはどうしたものか。 必ず static opCall 作れということなのか?
422 名前:デフォルトの名無しさん [2007/03/05(月) 10:52:49 ] よく考えたらDって結構キーワード多いのな
423 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 11:28:49 ] クラスの定義には class 構造体の定義には struct 共用体の定義には union 関数の定義には function ってならないの?不公平じゃね Cとかのいらないものを継承してんのかね
424 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 11:38:13 ] 激しく意味不
425 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 12:44:48 ] そーいやunion使ったことないや
426 名前:デフォルトの名無しさん [2007/03/05(月) 13:28:17 ] x64向けにコンパイルできないの?<D言語
427 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 13:30:57 ] ttp://wwwww.2ch.net/test/read.cgi/news4vip/1172977271/ 恐ろしい
428 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 13:43:15 ] function void hoge(int i){ ... } ってか。 Cからの継承だろうけど、別に要らないものではないだろう。 明示できるとコンパイラにも人間の読み手にも優しそうではあるが、必須だとメドイし。 ……とかいいつつ、 property void foo(int value){ this.value = value; } みたくプロパティを明示させてくれよー、と主張したい俺としては `property`に対応する`function`もあってもいいような気がしてきた。妄想しすぎか。
429 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 14:24:12 ] functionとやっちゃうと関数ポインタの宣言と被るよね。 むしろfunctionとprocedureとpropertyでそれなんてDelphi
430 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 17:30:17 ] DFL 0.9.5 リリース
431 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 18:34:36 ] いやっほう。なにげに待ってたぜDFL。 しかしhelloworld.dのコンパイル後サイズは433KBか……。 ちょっと、その、太ったんじゃないか……?