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


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

D言語 Part17



1 名前:デフォルトの名無しさん [2008/02/10(日) 15:06:12 ]
プログラミング言語 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://tinyurl.com/3da5oa (C/C++に疲れた人のD言語)
ttp://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語)
ttp://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか)
ttp://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)
ttp://www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画)

■ IDE
ttp://dronten.googlepages.com/dscite (DSciTE)
ttp://forums.codeblocks.org/index.php?board=20.0 (Code::Blocks)
ttp://www.dprogramming.com/entice.php (Entice Designer)
ttp://www.dsource.org/projects/descent (Descent)
ttp://www.dsource.org/projects/poseidon (Poseidon)

321 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:55:10 ]
gosubで呼ばれた先にnextがあったらどこに戻るんだろうか

322 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:23:16 ]
>>321
普通にエラーだったような。

323 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:40:42 ]
>>310
asm C C++とどっぷりつかってた。
んで、D言語であそんでたくちだが、C#がすんなり使えた。
D言語しかつかわないようにするわけでは無い。
「現代的な言語」(プログラミング言語Dより引用)にふれることは
そう無駄じゃないと思う。

324 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:00:22 ]
>>323
Dを本格的に使う、という話からだいぶ横滑りしてるかと。
というか、それは最初からC#とか使ったほうがいいんじゃね?
向こうのが開発環境も充実してるし、現代的な言語に触れるって目的なら各種スクリプトも手軽……

……なんか悲しくなってきた。でもDが好きだよ、俺。

325 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:34:09 ]
>>324
> ……なんか悲しくなってきた。でもDが好きだよ、俺。

好きならイイジャマイカ


326 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 22:44:24 ]
Dの設計思想に触れる事によって、どういった機能が他の言語に欠けてるか、あれば便利か、要らないかといったことも知ることが出来るわけで。
まあ他にもインスピレーションを得るために、変わった環境に触れていくのは悪いことではないかと。
今のところDってそういう位置付けでもいいと思う。言語の成長とともに使う側も成長していける言語みたいな。

327 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:43:23 ]
でもほかの言語と比べてもメリットいっぱいあるとおもうけど……
C#(.net系全部)はネイティブはけないし、Javaは遅いし、C++は汚いし……
趣味にはぴったりジャマイカ。コードと仕様が美しいし(C++と比べて)
まぁぶっちゃけC#が高速で起動するネィティブ吐き出したら勝てないと思うが。



328 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:17:04 ]
>ネイティブ
つngen

329 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:50:17 ]
でもngenって各ユーザが実行しないといけないやつだよね。たしか。

開発者側でネイティブ吐きたいよな。



330 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 03:04:35 ]
>>328
C#で作ったソフトの起動が遅すぎるんだが俺の何かがまずいのか?
ngen使っても起動時間は長いんだが
Dで作ったソフトは軽快だから好きだ!

331 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 03:36:51 ]
D言語で積み木シューティングってゲーム作ってるやついたよな
あれくらい使いこなせてるんなら本格的っていえるか

332 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 05:04:39 ]
>>331
TUMIKI Fighters は ABA さん
ちなみに Wii でゲーム化されるほど
ttp://www.gamespark.jp/modules/news/index.php?p=2808

333 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 06:05:33 ]
でもDは基本ゴッタ煮だから言語設計の勉強には向かないと思われ

334 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 06:52:44 ]
>>328
ngen使っても遅いのがちょっと速くなるくらいであまり変わらんよ。

335 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 06:59:18 ]
ABA始まったな

336 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 07:06:08 ]
次はまさしくんハイ!だな

まあ冗談だがWiiの操作性には割とマッチすると思わなくもない

337 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:18:37 ]
関数の中のswitch文の中でreturnを使った場合はその後にbreakはいらないよね?

338 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:24:38 ]
プログラムの動作上はなくても問題ない。
保守・改変まで考慮する場合(それがよい習慣か否かとか)は話が別だけど。

339 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:39:48 ]
ふと思った
関数にデストラクタ機能欲しくね?
quitでユーザー定義なデストラクタへ抜けてreturnでdefaultなデストラクタへ処理を渡す。



340 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:41:56 ]
デストラクタ作るなら return したら常に呼ばれるべきだと思うが。

341 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:45:02 ]
goto と同じ問題が発生するな。
変数の初期化を飛び越える事ができない。

解決するにはコンストラクタと称して
デストラクタで使用可能な変数を宣言する場所が必要になるな。

342 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:52:19 ]
scopeじゃいかんの?

343 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:54:51 ]
scope(exit) か。

344 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:12:38 ]
>>335
ABAはもうD使ってないよ

345 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:13:17 ]
>>339
撒き戻しとか後片付けならスコープガードや例外を使えばいいと思うよ。

346 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:52:28 ]
>328
ngen使っても完全なネイティブじゃないでしょ。それに.net frameworkで動くからやっぱり遅い(初期起動が特に)

趣味で作る小さなプログラム起動するのに時間かかってたら腹が立つ。Office大きいものならば許せるが。その点Dは高速だし好きだ。IDEさえ何とかなれば……orz

347 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:19:16 ]
例外ってロジック的になんか美しくないじゃん

348 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:21:47 ]
普通にtry{} finally{}で何の問題があるんだろう…

349 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:00:32 ]
処理のフローが、各関数の呼び出し関係から暗黙に決まる、
ってのが美しくないところだと思う。

関数を合成して処理を作ること、処理を連結してフローを作ること、
これはそれぞれ別のまとまりとして定義されないと、処理フローが
ぐちゃぐちゃになると思うよ。



350 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:16:09 ]
tryはDだとWinMain内部でしか使ったことが無いや。

351 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:02:44 ]
D言語BOF
日程:3月1日(土) 10:15 - 12:00 開始時間が変わりました
時間変更に伴い、以前登録された方も前半/後半を個別に登録してください
f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF


352 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:57:23 ]
>>310
俺もそう思ってたけどBOFのBillさんとか本気でつかってるぽい
まあ研究職だからできるのかもしれんが


353 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:04:33 ]
>>222

伝えるだけなら
ココで出たバグ報告をnewsにポストする人と手間はかわらん

しかしその後の議論についていきつつ説得するのは正直めんどい

あと >>214 はあまり集まらないので没りそう


354 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:33:32 ]
scope 関連は記述もわかりやすくなるし、
try ~ finally と違ってネストが深くならないしでかなり好きだ

355 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:37:42 ]
たった一段のネストがそんなに気になるのかなあ?

356 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:57:49 ]
印刷することを前提に、80桁以上にならないように注意すると
途端に一段のネストが憎たらしくなるよ。

357 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:20:15 ]
ネストが深くなりすぎるプログラムはダメなプログラム。

358 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:20:23 ]
finallyとかscopeは、ドキュメントいわく
「実行される箇所ではなくそれが概念的に属する場所に配置されている」
というのがいい点だが、概念的にスコープに属している実行保障を
わざわざtryブロックに付け替えるのは分かりにくくなる原因だよなと思う。

359 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:57:43 ]
デバッグ用じゃないin、out、bodyみたいなのがあればいい感じ?



360 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 06:28:56 ]
そろそろCLOSからbefore/afterをパクるのもいいな

361 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 14:38:36 ]
void hoge()
in {
}
out {
}
before {
}
after {
}
body {
}

上から読むとなかなかbodyにたどり着けないな

362 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:14:01 ]
361みたいにするのは358な理由で分かりにくくなるだけじゃね?

363 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:43:09 ]
>>354
自分は基本的にタブ8でインデント + 80桁でコーディングしてるのですごく気になる。
あと、

step1();
scope (failure) step1_end();

/* なんか処理 */

step2();
scope (exit) step2_end();

こんな感じのを try~finally で書くと鬱にならないか?

364 名前:363 mailto:sage [2008/02/25(月) 16:43:40 ]
ミスった。>>355 ね。

365 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:26:47 ]
>>363
それ、いわゆるtry…catch…finallyなパターンじゃない?

366 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:49:01 ]
DMDがコンパイル中にエラーで落ちるのは良くあること?

367 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:32:55 ]
なんのエラーだ

368 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:34:24 ]
内部エラー

369 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:41:58 ]
>>363
これと等価かな
try {
  step1();
  step2();
} catch {
  step1_end();
} finally {
  step2_end();
}



370 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:46:17 ]
>>366
よくある

371 名前:363 mailto:sage [2008/02/25(月) 21:55:24 ]
また書き間違いだ……
なんでこんなミスを

step1();
scope (exit) step1_end();

/* なんか処理 */

step2();
scope (exit) step2_end();


372 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:01:09 ]
面倒なのはfailureやexitがたくさんあるときだよね、きっと。
例外が発生した位置によってやるべきことが変わるから。

各段階にあわせた例外処理をするために別々のtry文を用意するか、
深くネストしたtry文で…って感じになるんじゃないかと。

373 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:53:05 ]
>>371
try-finallyがネストするのがそんなに嫌か?
巻き戻す環境が違うんだから、ネストして当然だと思うが。
むしろ>>371のほうが妙な制御依存が発生して嫌だ。

374 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:57:04 ]
tab8で80桁て普通だよな。
マジでプログラムの質が悪いからネストした時辛くなるんだろ。

375 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:05:55 ]
そして>>358に戻る。

376 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:14:28 ]
TAB8でもインデントは4だってさ

377 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:15:46 ]
それでも>>371みたいな書き方を推奨してるわけじゃないよね。

378 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:27:57 ]
その辺の話は本家にあるよね。

www.kmonos.net/alang/d/2.0/exception-safe.html
>>373
 > try-finally による方法は、 概念的に関連している値のセットと復元コードが、
 > 間に関係のないコードが挟まることでいくらでも離されてしまう危険性を含んでいます。
>>374
 > try-finally による解決は、 リソースの初期化コードと巻き戻し処理のコードが分離して記述され、
 > 実際ソースコード上で視覚的に大きく離れてしまします。
 > しかし、密接に関連した処理は一カ所にまとまっているべきです。
>>377
 > scope文だけでは例外のcatchはできませんから、try-catch も必要です。
 > try-finally は、scope文によって冗長な構文となったと言えます。

379 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 03:24:07 ]
配列の要素の任意の組合せでイテレイトしたいのですがどうかけばいいでしょう
ary = [1,2,3,4] から二個含んだ組合せなら
foreach(e; combination(ary, 2)) {
  e; // [1,2],[1,3],[1,4],[2,3],...
}
こんな感じの処理にしたい.

参考にRubyで書くと
def each_combination(ary, k)
  if k == 0
    yield []
    return
  elsif k == ary.size
    yield self
    return
  end
  duped_ary = ary.dup
  x = duped_ary.shift
  each_combination(duped_ary, k-1){|y| yield [x]+y }
  each_combination(duped_ary, k){|y| yield y }
end
each_combination(ary, 2){|x| p x }

御存知でしたら教えて下さい




380 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 06:52:40 ]
直訳した
int delegate(int delegate(ref T[])) each_combination(T)(T[] ary, int k)
{
return (int delegate(ref T[]) yield){
if( k==0 ) {
T[] empty = [];
if(int r = yield( empty )) return r;
}
else if( k==ary.length ) {
if(int r = yield( ary )) return r;
}
else
{
T x = ary[0];
foreach(y; each_combination(ary[1..$], k-1)) { T[] plus=x~y; if(int r=yield(plus)) return r; }
foreach(y; each_combination(ary[1..$], k)) { if(int r=yield(y)) return r; }
}
return 0;
};
}

381 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 08:35:49 ]
>>374
いつの時代の人間だよ。
こういうこと言う奴って ts とか hmi とか訳分からん略した変数名使ってんだよな。
そっちのほうが最悪だっつーの。

382 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 09:01:12 ]
2chにコードとか投稿すると著作権持っていかれるんだよなあ…

383 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 10:25:41 ]
実質「公知のもの」になって委譲されるわけではないと思われ。
独占権は当然なくなるが。

384 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 11:43:25 ]
>>383
info.2ch.net/kiyaku.html

385 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 11:58:54 ]
>>384
著作権は「創作性」なるものがないと認められないんだが、
Dスレで張られてる程度のサンプルないし言語仕様の検証コードなら、
創作性なしと判断されるのが通例と思われ。

386 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:22:14 ]
委譲できる分だけ全部委譲させられるから問題なんだけど。
 > 無償で非独占的に複製、公衆送信、 頒布及び翻訳する権利を投稿者に許諾します。
 > また、投稿者は掲示板運営者が指定する第三者に対して、一切の権利(第三者に
 > 対して再許諾する権利を含みます)を許諾しないことを承諾します。
あたりのせいで、ここでコードを聞いて流用するとなると適用できない
ライセンスが結構出てくる。

20行を越えるようなコードでも創作性はないってのが通例だってのは初めて聞いた。
そうなると、それよりはるかに大きい著作物の20行の断片だけを流用する場合でも、
その断片はもはや創作物として原形をとどめてないないんだな。

387 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:33:38 ]
ttp://slashdot.jp/developers/article.pl?sid=06/10/23/0026258
とか3行で騒いでて何をやってるんだろうなあと思ったことはあるけどよくわからんな。

388 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:39:39 ]
try{
 Database database = MySQLDatabase.connection();
 try{
  Query query = database.compileQuery("select * from books");
  try{
   Result result = query.execute();
   foreach(Row row; result){ ... }
  } finally {
   query.close();
  }
 }finally{
  result.close();
 }
}finally{
 database.close();
}

これがscope(exit)ですっきり上から下に書けるから嬉しい。
最初にnullで初期化してclose()前にnullチェックすればtry-finallyは1段階で済むけど、
出来れば変数は宣言と同時に初期化して、再代入したくない。
まぁデストラクタ使えばscope statementすら不要だけど。

389 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:48:05 ]
あ、やべ。コードが全然違った……。

Database database = MySQLDatabase.connection();
try{
 Query query = database.compileQuery("select * from books");
 try{
  Result result = query.execute();
  try{
   foreach(Row row; result){ ... }
  } finally {
   result.close();
  }
 }finally{
  query.close();
 }
}finally{
 database.close();
}



390 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:28:56 ]
>>386
このスレで張られるサンプルって、ほとんどが機能的なものではなく「言語仕様の検証」であって、
言語仕様からほとんど一意に決まるものだから検証サンプルそのものには創作性は認められないのではないかと。
何らかの機能性を有していれば3行のコードでも創作性が認められるとは思うけどね。

391 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:45:29 ]
>>390
いずれにしても裁判所がそう認めない限りはわからないんだよね。
不確実なことを避ける考え方にも一理ある。

こういう話は嫌いじゃないけど、どうせ結論出せないんだし
気にする人だけ気にしてればいいんじゃね。

392 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:48:58 ]
>>390
気にする人だけ気にすればいいというのは同意かな。
多少気になったので裁判例を調べてみた。


ア プログラムの著作物性
 プログラムは,その性質上,表現する記号が制約され,言語体系が厳格
であるため,計算式をプログラム言語で記述したような場合にはプログラムにおけ
る記述が相互に類似することがあり得る。仮に,簡単な内容とごく短い表記法によ
って記述したプログラムをも,著作権法上の保護対象とすると,コンピュータの広
範な利用を妨げ,経済活動や研究活動に多大な支障を来すことになる。また,著作
権法は,プログラムの具体的表現を保護するものであって,機能やアイディア,あ
るいは科学的な計算式やその採用を保護するものではない。当該プログラムがある
目的における公知の計算式の採用を保護対象とすることになると,結果的には計算
式そのものを独占させることとなるからである。
 したがって,コンピュータに対する指令の組合せであるプログラムの具
体的表現がこのような記述からなる場合は,作成者の個性が発揮されていないもの
として創作性が否定されるべきである。
www.courts.go.jp/hanrei/pdf/683C8598E4E61EC4492570DF001C9775.pdf


図表又は図表の使用例に示される思想ないし
アイデアそのものは,著作権法によって保護されるものではない。また,このよう
な図表又は図表の使用例は,次に述べるとおり,かかる思想ないしアイデアを表現
する際にその個性が表れず,定型的な一般的にありふれた表現としかならないよう
な場合には,著作権法によって保護し得る表現上の創作性があるということはでき
ない。
www.courts.go.jp/hanrei/pdf/A04C1CFADEB110E7492570BD001A9BE1.pdf

393 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:59:34 ]
392のアンカは391宛てで……

上のほうの裁判例、被告の主張部分で判決部分ではありませんでした(ただし被告勝訴)
しかし、控訴審で判断が一部ひっくり返ってた。
公知の式をプログラムにするだけなら創作性はないが、
それを含むシステム全体は創作性を有するとかなんとか
ttp://www.courts.go.jp/hanrei/pdf/20070104101733.pdf

自分の間違いを訂正したところで、
スレチなのでこの辺で打ち止め。

394 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:10:52 ]
>>389のほうが>>371みたいなのよりずっとマシだと思う。

395 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:12:01 ]
コーディングスタイルやらインデントの話は不毛すぎる

396 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:31:05 ]
>>371だと、コードのどの部分でどんなハンドラが付いてるかが制御依存しちゃうんだよな。

397 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:01:36 ]
そもそもデストラクタ使えよって話だ。

398 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:43:06 ]
>>396
どういう意味なのか、アホな俺にもう少し噛み砕いて説明してくれまいか。
>>389だと、openなどに対応するcloseがえらく離れちゃうし、
connection, compileQuery, executeという「本筋」の実行パスが分かりづらくて、
可読性の面で問題があるとおもうのだけど。
こう、gotoを忌避するあまり、関数呼び出しの度にif(!error){ ... が重なっていくCのコードみたいに。

399 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:20:32 ]
>>396
そりゃあ、どんな処理をしたかによって後始末の処理を予約・保証したいんだから、
処理によって動的に定まるのが自然じゃね?
switch(x){
case 1:
f1(); scope(exit) _f1();
break;
case 2:
f2(); scope(exit) _f2();
break;
default:
f0(); scope(exit) _f0();
}
とかtry-finallyだとどうなるんだろう。
結果的に静的に定まる場合なら、静的に定めるtry-finallyなコードに直訳できるけど、
こういう場合はよく分からん。フローの状態を記録する変数とか用意したりするのが
セオリーなんだろうか。でもそれじゃ結局フロー依存だしなあ。



400 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:40:46 ]
単純なサンプルのつもりで書いたコードがボコボコにされててなんか辛いんだぜ

401 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:31:55 ]
どんまい

402 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:44:24 ]
言語仕様に著作権が認められたらサンプルコード載っけるだけで著作権侵害になるのかな。

403 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:00:23 ]
>>402
著作権は親告罪だから言語の作者がよほどの基地外じゃなかったら真っ白だよ
でも今居るGPL厨みたいな人間がしつこく言ってきて結果的な被害は変わらないだろうけどw

404 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:22:52 ]
>著作権法
>第十条  この法律にいう著作物を例示すると、おおむね次のとおりである。
>(中略)
>九  プログラムの著作物
>3  第一項第九号に掲げる著作物に対するこの法律による保護は、その著作物を作成するために用いるプログラム言語、規約及び解法に及ばない。この場合において、これらの用語の意義は、次の各号に定めるところによる。
>一  プログラム言語 プログラムを表現する手段としての文字その他の記号及びその体系をいう。
>二  規約 特定のプログラムにおける前号のプログラム言語の用法についての特別の約束をいう。
>三  解法 プログラムにおける電子計算機に対する指令の組合せの方法をいう。

なので少なくとも現在の日本では著作権法の保護は言語仕様に及ばないはず。

405 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:34:56 ]
じゃ実用新案辺りで手を打とうか

406 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:38:03 ]
言語仕様そのものには及ばないが、言語仕様を説明する文章は当然保護されるよな。
ニュースの内容と、ニュース本文のような感じで。

407 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:25:33 ]
Rubyみたいにソースコードが仕様な場合はどうなんだろ。

408 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:58:46 ]
tryの中でfinallyをscope(exit)と同じように機能させるとか
try {
  starthoge();
  finally endhoge();
}

409 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:10:57 ]
{
 starthoge();
 scope(exit) endhoge();
}

これと等価?



410 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:54:59 ]
catchがあるときに本領を発揮すると思う

411 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 12:52:51 ]
DFL 0.9.7 is mostly bug fixes and core improvements:
www.dprogramming.com/dfl.php

Entice Designer 0.8.4.03 is a bug fix release:
www.dprogramming.com/entice.php

New Entice Designer and DFL Video Tutorials:
www.dprogramming.com/dfl/videos.php

412 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:10:20 ]
>>407
assert(0)

413 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:20:46 ]
Entice は日本語が使えないのが惜しい……

414 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:31:15 ]
static foreachはまだなのか

415 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 17:37:23 ]
ftp://ftp.uploda.net/exe/test_window.zip
同じスタイルのウインドウを表示するだけのサンプルなんだけど、CとDではなぜか表示スタイルが違ってしまう。
たぶんCの方が正しいと思うのだけど、どこが悪いんだろう。

import std.stdio;を消すとエントリポイントが無いエラーが出るし。

416 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 18:11:42 ]
>>415
Dの場合win.defをですね、

EXETYPE NT
SUBSYSTEM WINDOWS,4.0

って書き換えてみましょう。

417 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 18:16:07 ]
>>416
あっはっは。
前にそれどこかで見つけてそういう風にしていたのになぜか今見てみたら4.0が消えてたほうに変わってた。OTL

どうもです。

418 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:36:53 ]
DFLでウィンドウアプリを弄っています。
メインのFormをいわゆるSW_HIDE状態にしたいのですが・・・できませんorz
visible=false; とか ShowWindow(cast(HWND)this.handle, SW_HIDE);
とか試したがうまくいかないです。
やりかたご存知の方いらっしゃいませんか?

419 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 09:34:45 ]
DFLってかなり.netに似てるから使いやすそうだと思ったけど、情報が少ないっていうのはかなり不利だよな。

>>418
で、.netに似てるなら.netを調べたらいいんじゃないだろうかと思って調べて来たら、.netでフォームを非表示にするには
FormクラスのHide()を呼び出すみたいです。
DFLを見るとhide()があるので、これでいけるかも知れませんね。試してませんが。



420 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 09:51:59 ]
>>416のdefを適用してもコンソールウインドウを出しっぱなしにするにはどうしたら良いのでしょうか。

421 名前:418 mailto:sage [2008/02/29(金) 10:45:48 ]
>>419
とりあえずhide()を呼び出して見ましたが変わりませんでした。

.netのHide()メソッドはvisibleをfalseにするのと同じとありました。
DFLにおいてvisibleプロパティについてはEnticeDesignerのメインformのvisibleプロパティのところに
 "whether or not this form is visible"
と説明がでますのでどっちにしろ表示される・・・・( ;´Д`)ぇー!?
て思ってたんですが、hide()もこれと同じ結果のようです。
なんか方法ないもんですかねぇ;






[ 続きを読む ] / [ 携帯版 ]

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

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