- 1 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:59:13 ]
- プログラミング言語処理系の開発に興味のある人達のスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン, SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化, JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。 意味論に関する話題も歓迎です。 過去スレ 1 pc.2ch.net/tech/kako/981/981672957.html 2 pc2.2ch.net/test/read.cgi/tech/1021136715/ 3 pc5.2ch.net/test/read.cgi/tech/1070089173/ 4 pc5.2ch.net/test/read.cgi/tech/1100097050/ 5 pc8.2ch.net/test/read.cgi/tech/1106129164/ 6 pc8.2ch.net/test/read.cgi/tech/1115335709/ 7 pc8.2ch.net/test/read.cgi/tech/1129287390/ 8 pc8.2ch.net/test/read.cgi/tech/1131273918/ 9 pc8.2ch.net/test/read.cgi/tech/1135082582/ 関連リンクは多分 >>2-10 あたり
- 744 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 20:20:23 ]
- LISPは今風の書き方ができない。
やっぱa.b.c.d().e.f.gとかしたいわけよ。 LISPで同じことしようとするとオペレータ毎いちいち括弧でくくらないとな。 (dot(dot(dot(call(dot(dot a b)c)d)e)f)g) もうなんだかわからん。 おっと、マクロにすりゃいいとか言い出すなよ。 俺はLISPを長年研究してきたから嘘は通じんぞ。
- 745 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 20:39:58 ]
- CLOSみたいにaccessorで触る仕組みにすると
(g (f (e (d (c (b a)))))) のような感じになるかな。
- 746 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 21:07:10 ]
- (chain
(a obj) (b it) (c it) (d it) (e it arg1 arg2)) みたいに書けるようにするのはマクロでできるよ。 Rubyでselectやらmapやらを繋げて配列を引き回していたりなんかすると、 ブロック+ドットよりもこっちの方がむしろ見易い気がする。
- 747 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 21:14:01 ]
- >>744
そういう風に華麗にかけるのはいいんだけど、デバッグするときにめんどくさくなんね? gの呼び出しで値がおかしくなってるんだけどどこで値がおかしくなってるのかわかんないみたいな。
- 748 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 21:28:46 ]
- >>746
で、誰がそんなアホなマクロ使うの? プロジェクト全体でそのマクロ使うように、 ルール決めしたりできる?www
- 749 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 21:55:53 ]
- >>744
引数を沢山とれるようにして (dot (call (dot a 'b 'c 'd)) 'e 'f 'g) でいいじゃん。
- 750 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 22:01:13 ]
- だから、んな誰も使うはずのないゴミを書いてみても
自己満足以外の意味ないだろ
- 751 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 23:26:44 ]
- vimのマクロはなにに影響されてできたもんなの?
- 752 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 00:00:43 ]
- >>744
| LISPは今風の書き方ができない。 | やっぱa.b.c.d().e.f.gとかしたいわけよ。 いや。そんな書き方したいと思ったことは一度もないんだが。
- 753 名前:744 mailto:sage [2006/09/14(木) 00:03:24 ]
- ふむ、ふむ。
予想通りのレスだな。 おれは結局フロントエンドを書いた。 しかし、それはもはやLISPではなく、 >>750の言う通りでもあった。 LISPはリスト処理が得意なはずなのに、 こういった階層表現のオペレートが苦手なのは意外だった。 素直にLISPとして表現するならば、 (defvar a '(b (c (d (e (f (g value))))))) というタグ付きリスト階層を作り、 (cdadadadadadadar a) => value という操作を行う事だろうか。
|

|