[表示 : 全て 最新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/

792 名前:791 mailto:sage [2007/11/10(土) 17:07:34 ]
ミスった。class Hoge{static class Bar{static void foo(){}}}ね。

793 名前:789 mailto:sage [2007/11/10(土) 17:10:30 ]
>>791-792
Bar モジュールインポートしてなければすぐ分かる話だよね。

794 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:13:55 ]
>>790
bin の1個上のフォルダ指すんじゃなかったっけ。
c:\dmd\bin なら c:\dmd を指定する。

795 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:26:33 ]
>>790,794
ありがとう。おかげでIDE環境で初コンパイル出来たよ(つД`;)

796 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:27:13 ]
>>793
まぁ、基本的にはそうだけど。
でも根本を無くすにはdmdがcallgraphを生成できるようになるのが一番だと思う。

797 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:34:26 ]
伝説のIDEが登場すればチップヘルプで教えてくれるよ。

798 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:56:28 ]
>>796-797
そりゃ、理想なんだけどさ。そのときは無駄な冗長になっちゃうね。

799 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:09:46 ]
hoge.Bar.foo();
このBarの部分が省略可能だったらいいのではないかと。
明示したいときは明示すればいいし。

800 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:20:07 ]
Barがmoduleなのかaliasなのかclassなのかstructなのか関数なのかメソッドなのか
プロパティなのかメンバ変数なのかが区別つかなくなって読みにくいコードになりそうだな。
…っておもったけどいざとなったらtypeofとかis式とか__traitsとかpragma(msg, ...)とか
stringofとかですぐに見つけられそうだな。



801 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 05:52:35 ]
>799のhoge.bar.foo()形式は、演算子の結合順序的にありえないだろうな。
>783のhoge.bar::foo()形式だと、mylib.barとかいうモジュール名とか考えると破綻する気が。
ありえるとしたら>784とか>785あたりのhoge.(bar.foo)()系じゃね?

>799の任意省略方式だと、static importとかで完全修飾を強制することによる
bar.foo(hoge)って記法に対して存在意義がないから、>800の言うような
混乱要素を無用に増やすだけになると思う。
>786で言われてることかな。

802 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 09:13:28 ]
>>801
関数呼び出し式は今も

IdentifierList  '(' ParameterList ')'

IdentifierList:
  identifier
  IdentifierList  '.'  identifier

だから、結合順序的には問題ないよ。意味論のフェイズで正しく処理できるようにしてやるだけ。

803 名前:デフォルトの名無しさん [2007/11/11(日) 09:17:07 ]
memo

ttp://python.matrix.jp/apps/code_blocks.html


804 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 15:46:41 ]
>>802
いやいや、お前が間違ってるよ。よく考え身。

805 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 16:05:22 ]
>>804
間違ってるとかいうなら根拠しめそうぜ
モジュール名は識別子じゃないとか間抜けなこと言う?

806 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 16:12:14 ]
>>805
結合順を考えろ。間抜け。

807 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 16:14:03 ]
ああ、マヌケにはもっと説明を加えないと分からないか。

abc.efg.hij()

これを結合順に括弧でくくってみろ。
それが既存の文法と矛盾しないか考えろ。

808 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 16:31:40 ]
'.'って、いつから演算子になったんだろう

809 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 16:34:12 ]
最初から

810 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 16:42:14 ]
演算子の結合順は実装依存。
結合順に依存するコードは誤り。




811 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:05:44 ]
>>810
お前頭大丈夫か?
そんなわけないだろ。
仕様で結合順は決まってるよ。

812 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:12:04 ]
釣り師おおすぎ

813 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:38:22 ]
土日だからな
はぁ…月曜日が待ち遠しい…

814 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:41:22 ]
月曜はニートだらけ

815 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:41:24 ]
とりあえず、「演算子の優先順位」でググって最初に出たサイト。

ttp://c-production.com/special/04092101.html

これは、Cのものだけど、Dも基本的なものは同じだよ。

816 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:44:10 ]
f17.aaa.livedoor.jp/~labamba/?%B1%E9%BB%BB%BB%D2%A4%CE%CD%A5%C0%E8%BD%E7%B0%CC

817 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:01:49 ]
>>811>>815
とりあえず、ここを読んでみようか
www.digitalmars.com/d/expression.html
Evaluation Order

Unless otherwise specified, the implementation is free to evaluate the components of an expression in any order. It is an error to depend on order of evaluation when it is not specified. For example, the following are illegal:
アホ多くてワロタ

818 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:09:25 ]
どっちにしろ、abc.efg.hij()は左結合だから、
(abc.efg).hij()と解釈されることはあっても、
abc.(efg.hij)()と解釈されることは無いな


819 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:11:47 ]
>>817
明らかにアホはお前。

評価順と結合順を勘違いしてる大バカ野郎。

820 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:17:15 ]
Barモジュールにあるfooってことで
hoge.foo@Bar()
とかどうだろう。

これでFugaモジュールにfooがある場合も
hoge.foo@Fuga()
っていけるし。

けど重複していない場合は
hoge.foo()
と省略して書けるとか。



821 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:17:51 ]
>>818
そうだけど、typeof(abc)からefgを探して、無ければグローバルから辿るでおk。

822 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:19:09 ]
>>818
式(expression.module)がexpressionとmoduleをpackしたデータを返すことにして、
それに対して.memberを呼び出したときに、module.member(expression)と解釈される。
ただし、(expression.module)のデータ型はコンパイル時にのみ存在し、変数等に保持することは出来ない。

と定義すれば何の矛盾もなくね?

823 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:29:12 ]
>>821-822
何でそんなに無意味に複雑にする必要がある。

というか、そんな風にしたら foo.Bar.hogeという式のBarが何なのかを探すのが困難すぎる。

モジュール名を記述させたい理由は
>って記述してありゃ、Barモジュールのfoo()関数を読んでいるってのがすぐ分かる。
ってことじゃなかったのかよ。
まるっきり逆効果になることを言って何がしたいんだよ。



824 名前:821 mailto:sage [2007/11/11(日) 18:35:25 ]
>>823
複雑じゃなくて実装的に自然だし。

825 名前:821 mailto:sage [2007/11/11(日) 18:36:40 ]
でも無いか、勘違いスマソ。

826 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:38:31 ]
>>824
一行目しか読めないのか?

つーか、実装的にも自然じゃねーよ。。

aaa.bbb.ccc.ddd.eee()

これがどういう探索をしないといけないのか、よく考えてみろ
bbb.ccc.dddというモジュールがあったら?
ccc.dddというモジュールがあったら?

827 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:41:20 ]
配列のプロパティ的構文で、

module util;
int sum(int[] array) { ... }
...
sum = a.sum;

関数が定義されてるモジュール名を書くようにするには、どうすればいいか、という話だったよね。

関数なら、util.func(array);で問題ないが、プロパティ的に呼び出すときには、
array.util.func;
なのか、
array.uitl::func;
なのか、とか云々。

一人、訳の分からない人がいて混乱してるけど、元々はこういう話だったということで。

828 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:46:24 ]
何も考えずに、

array.(module.func)でいいと思うんだけど。

これが気に入らない人の意見が聞きたい。

829 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:49:56 ]
それ以上省略できたら無意味に分かりにくくなるだけだしな。

830 名前:802 mailto:sage [2007/11/11(日) 20:46:36 ]
>>806>>807>>815
予想してた斜め上の回答がきててワロタ
構文解析とか意味解析とか知らないくせに左結合とか右結合とか
結合規則だけでコンパイラ語ってんじゃねぇ、ヴォケw

例えば、hoge モジュールの中に foo クラスがあって、bar っていうメソッドがあったとして、
hoge.foo.bar っていう字句列が何を意味するか分かる?



831 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:50:39 ]
>>830
何にも分かってないのはお前だけー

832 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:53:06 ]
やれやれ、結局煽るだけか。
まぁ、納得できないんじゃなく、理解できないんだからしょうがないが。

833 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:55:24 ]
>>832
つーかさ、なんで>802クンは>830で突然戻ってきた風なくせに、
突然>830でキレ気味に「ヴォケ」とかあおってんの?

そんなに悔しい出来ことがあったのですかー?

834 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:57:09 ]
はいはい、ごめんねー

835 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:57:40 ]
やれやれ、反論できずに非を認めて謝っちゃったか。最初からそうしとけばよかったのにな。

836 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 21:00:09 ]
うん、そうだね^^

837 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 21:01:23 ]
どうやらようやく理解できたようで。めでたしめでたし。

838 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 21:02:32 ]
はい

839 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:11:43 ]
わかったふりしたい時は
偉そうにクイズ出してごまかすに限るよな。

840 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:12:29 ]
上はじゃじゃ馬下はヘボ これなーんだ?



841 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:23:20 ]
ちんこ

842 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:38:35 ]
まあ>>833->>841は俺の自演なんだけどねー

843 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:49:47 ]
>>842
自演ってことにしたいの?そんなに悔しかったのかい?

844 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:26:43 ]
>>843
オマエガナー

845 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:27:48 ]
無駄なレスで消費するなよな・・・
と言うとこのレスも無駄だろと言われるんだろうけど。

846 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:31:37 ]
>>842-845
自演乙

847 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:31:48 ]
糞スレのいい再利用法だな

848 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:10:00 ]
>>846
くやしいのうwwwくやしいのうwww

849 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:58:02 ]
アイタタタタタ・・・

今日は802は悔しくて眠れないだろうなこりゃ。

850 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:59:36 ]
悔しがることかどうかもわかってないから大丈夫



851 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:59:39 ]
なんかスレのレベル下がったな

852 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:01:42 ]
俺のおかげだな。

853 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:44:38 ]
>>848
自演乙

854 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:51:56 ]
>>848=849
いい加減にしたらどうだ?
そこまでして勝ち誇りたいかね

855 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:04:02 ]
まだうだうだやってたのか。
せっかく俺が>>834を書き込んでやったというのに。

856 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:13:06 ]
でもそんなの関係ねー

857 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:20:07 ]
本当に悔しくて眠れないって、うけるwwwwwwwwwwwwwww

858 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:21:06 ]
いい加減に寝ろww

859 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 06:01:30 ]
おはよう諸君。
最後に書き込んだやつが、悔しくて最後まで起きてた奴ってことでいいかね?

860 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 07:33:14 ]
みんなみんな>>802



861 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 09:22:08 ]
>>859
悔しくて、朝一番に書き込んじゃったお前が NO.1だよ。寝てないんじゃない?

862 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 10:27:38 ]
下らない流れで加速させてもなあ(´・ω・)

863 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 10:53:31 ]
lazyって何につかってんのww

864 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 12:32:11 ]
>>859
おはよう>>802

865 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 13:18:39 ]
>>863
lazyとか、macroが導入されたら使い物にならなくなりそうな気がするな。
いまでもdelegateとか使えば表現できるし、使い道的にはぶっちゃけいらないんじゃね?
最適化のために使われたりするのかなぁ…

>>864
もういい加減その話題引っ張るのやめようぜ。

866 名前:デフォルトの名無しさん mailto:sage 願わくは俺再帰で無限ループ [2007/11/12(月) 18:00:38 ]
引っ張れば引っ張るほどそいつの悔しさが露呈するという事実

867 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:21:08 ]
>>866
やめようぜ、頼むよ。
再帰には終了条件を設定すべきだろ。

868 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:25:41 ]
終了条件はスタック溢れて例外飛ぶまででおk

869 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:56:51 ]
末尾最適化されて無限ループに

870 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:31:00 ]
auto D言語_Part15 = std.thread.getThis;
D言語_Part15.pause;



871 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:52:44 ]
何をどう書き込んだって俺の勝ちなんだから、
もう諦めようよw

872 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:13:26 ]
じゃ俺も勝ちで

873 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:16:29 ]
じゃあ俺は負けで

874 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:56:52 ]
何の祭かと思ってスレ開く前に公式すっ飛んでった俺涙目

875 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:13:13 ]
DSSS つかってみたんだけど
dsss build でexeファイルができない・・・

1>Creating imports for DD-Debug
1>Creating imports for DD-dsss_objs
1>Debug => DD-Debug
1>WARNING: Section Debug has no files.
1>dsss_objs => DD-dsss_objs
1>WARNING: Section dsss_objs has no files.

ってでます。

dsss build main.d ってやればできるんだけど
ルートディレクトリでコマンド一発ってのがdsssの機能をつかいたいです

876 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:40:31 ]
dmd 2.007で

void hoge(void delegate() func){
func();
}

void main(){
hoge({goto End;});
End:
return;
}

をコンパイルするとError: label End is undefinedってなるのと
mainのreturn;をはずすと(ラベルの後がすぐ}だと)エラー出すのは仕様通り?

877 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:51:03 ]
ラベルの後ろには文がないといけない。
End: ; ってしてみるといい。

878 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:58:46 ]
>>876
gotoで飛べるのは同じ関数の中のラベルだけで、
関数から飛び出したり別の関数へ飛び込んだりは出来ないよ。

879 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 01:38:38 ]
>>874
(´;ω;`)ぶわっ

880 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 05:34:50 ]
継・・・続・・・?



881 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 17:50:38 ]
継続はいらね

882 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 22:03:08 ]
あのさ、1系列はもういらない子なの?

883 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 23:32:21 ]
まぁ、一度もまともに固まったことのない言語に安定版の3文字など存在しないから、
1.xは実質的には、単なる「試行錯誤の跡地」であり、要らない子かもしれないな。
そこに何かを求めるのは、ついうっかりDの安定性に賭けて何か作っちゃった人くらいだな。

884 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:13:01 ]
今ふと気づいたんだけど、-v1オプションていつからか消えてる?

885 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:13:12 ]
>>883
ヒドスwwwww
でもそんな感じだな・・・
2.0もそうなるんだろうな・・・

886 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:19:54 ]
>>884
2.xには最初からなかったと思うけど
1.xにもなくなっているのかな

887 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:22:54 ]
C♯も3.0出るしな

888 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:26:53 ]
>>884
2.001から

889 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:48:23 ]
unrecognized switch '-debuglib=tango-base-dmd.lib'
Tango入れたらこんなん出てきたんですが、
これはどっか設定変えないと駄目なんでしょうか。

890 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:52:02 ]
DMDが古いんじゃね?



891 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 00:41:19 ]
入れてる dmd が古くて -debuglib オプションを持ってないんだろう

892 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 00:52:35 ]
omg
そうだったんすか。
ありがとうございました。






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

前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