- 1 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:40:17 ]
- The Scala Programming Language
ttp://www.scala-lang.org/ チュートリアル日本語訳 ttp://homepage.mac.com/takashi_miyamoto/scala/ScalaTutorial.pdf どう書く?org Scala ttp://ja.doukaku.org/lang/scala/
- 159 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 17:44:31 ]
- なんか、型推論があれば、
動的型付けなんかいらないみたいな事が書いてあったけど、 本当にそうなの?
- 160 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 18:07:32 ]
- >>159
動的型付けや型推論の定義によるけど 動的型と言っても結局実行時には何の型であるかを決めて変換しないと実行できないので それをコンパイル時にやってるのが型推論ということだとすれば 実行時まで型がわからない状況以外は全部型推論で片付くことになる ただ実行時まで型がわからない状況ってevalくらいしか思いつかないのだが・・・
- 161 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 19:50:51 ]
- 動的型付けだと、状況によって型が違う関数とかが発生するでしょ。
例えば Lisp 系なんて、何でも入るリストがデータ構造の基本なんで、多くの関数の型は引数とかに依存する。 型を決めて変換するってよりは、型に応じて分岐処理したりするような世界だから、推論は難しいと思うけど。
- 162 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 20:09:32 ]
- 型に応じて分岐処理ってポリモーフィズム?
- 163 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 20:11:42 ]
- >>161
何でも入るっていっても、本当に実際に何でもつっこむような使い方って Lisp系でもそんなにしない気がするんだが、どうだろう。Lispのエキスパートじゃないので 自信があるわけじゃないけど。で、もしこれが真ならvariant(VBのじゃなくて、MLとかの やつね。Scalaで言うとcase class)があれば大体事足りるのではないかと
- 164 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 20:40:31 ]
- >>159
「型推論」じゃなくて「強い型付け」の間違いですか?
- 165 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 20:50:26 ]
- Scala at Waves (SaW):
問題をガリガリ破壊していくフレームワークのような何か。白装束を着ないと自分も破壊される。
- 166 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 20:54:14 ]
- なんでgenericsに<>使わないの? Foo<Bar<Bazz>> ←ここの問題とかだったりしたら orz
{ブレース}使って見た目の「普通感」があるのはJavaneseに取ってもいいことだと思うんだけど、 それをメリットとして軽く触れられた後で<>が[]です、[]が()です、型は後置です、って言われても やっぱり見慣れない感が。 理論的・技術的に問題ないのと、今までの目の慣れにやさしいかは別問題。
- 167 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 21:01:41 ]
- C++はC++0xで>>とくっつけて書いていいようになりました。
要するに文脈依存でlexer頑張れと。
- 168 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 21:07:30 ]
- >>167
lexerに文脈を表す状態を持たせる必要……この道はいつか来た道。 ←ruby/parse.y orz
- 169 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 21:11:48 ]
- <>でも[]でもどっちでもいいじゃん
- 170 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 21:24:44 ]
- {}でもdo..endでも でもどっちでもいいじゃん
- 171 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 21:34:19 ]
- それは{}でお願いします
- 172 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 22:14:10 ]
- >>166
Javaのgenericsにその問題はないから別の理由だろ
- 173 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 22:25:20 ]
- >>166
本当のところ、理由はわからんが、記号がかぶらん方が、パーザにとって 色々都合が良いという話はある。例えば、 A[B] Cという式があったとして、 これがA<B> Cだったら、記号表みないと、A < B > Cという式と区別つかんとか。
- 174 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 22:29:23 ]
- >>173の例はミス。A[B] Cだとまずかった。書き直すと、
a.b[C](d)という式があったとして、これがa.b<C>(d)だったら、 記号表みないと、a.b < C > dという式と区別つかんとか。
- 175 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:34:40 ]
- >>174は処理系実装と言語仕様の思考分離を(ry
- 176 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:11:10 ]
- >>175
いや、もちろんわかってるよ。ただ、処理系(というかパーザ)の実装のしやすさを 考えて、問題無い程度に構文を変えるというのは普通にあり得る話だと思う
- 177 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:28:03 ]
- D 言語なんかまさにそうだな。
実装しやすいような言語仕様にするってのを1つの柱にしている。 D 言語は構文解析と意味解析が 100% 分離可能。 逆に C++ とかは泥沼。全言語の中で最もパーサが作りづらい。
- 178 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:22:34 ]
- >>176
同意。ただ>>173のような例が「問題がある」程度の実装の難しさを引き起こすかな。 テーブル見る必要があるのはスマートじゃないけど、見慣れた記号の意味が変わらない、というのは 一つのメリットになり得るから、トレードオフとして検討する価値はあるんじゃないかなぁ。 けど、[とか]が単独で演算子として使われたことはないだろうから、それを<と>の代替として選んだ Scalaの中の人は確かにちゃんと考えてるなーと思う。
- 179 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:23:45 ]
- >>177
C++なぞ問題外 (^^)
- 180 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:35:02 ]
- とりあえず参考資料 っ
> * Features of Ruby > + Simple Syntax (from README) Pseudo simplicityとか言い張ってるやつだな。どこがpseudoって、parse.yの大きさ見れば分かる。 Rubyの主張は、見た目の良さと実装難易度は直交するということじゃまいか。 たしかにBrainf**kなんか挙げればそれっぽい気もするが、ある程度の複雑さを備えた実用的な 言語仕様でも上記が主張できるかどうかは、意見が分かれるところだろう。 (見た目がシンプルなら実装も簡単になりやすいんじゃないか、等々)
- 181 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:37:23 ]
- >>180
「見た目の良さ」だと曖昧だな。理解のしやすさ、くらいか。まぁその指標自体が曖昧だが。
- 182 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:54:49 ]
- >>174
不等号を連続させられないようにする、という選択肢もあるね。
- 183 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:21:05 ]
- >>180
> Pseudo simplicityとか言い張ってるやつだな。どこがpseudoって、parse.yの大きさ見れば分かる。 それだけだと単にyaccが適切な道具じゃなかったという可能性が否定できないよ。
- 184 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:25:20 ]
- >>183
Rubyの文法は、lexer/parserを分離する事が前提の構文解析アルゴリズム は向いてない可能性はあるね。
- 185 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:52:00 ]
- Cが駄目だね。> 分離
- 186 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 23:23:22 ]
- >>183
LALR(1)が、なら同意だけど、単にyacc(bison)が、ならあんまり同意できないかも。 parse.y覗いたことある? あんなことやってたら他のパーザジェネレータ使ってもコードが太りそう。 結局は>>184のが本質ついてるのかも。
- 187 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 23:34:41 ]
- とりあえず誰か、Scalaの超絶技巧を使って[Type]を<Type>と書けるようにするライブラリの実装ヨロスコ
// TypeじゃなくてKlassか?
- 188 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:03:10 ]
- >>187
さすがにそりゃ無理があるw Camlp4みたいに標準的な構文拡張のための方法が用意されてるならともかく Scalaではそういうのは無いはずだし
- 189 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:15:09 ]
- >>186Rubyをわかってねーな。プログラマのためにあえてあーなってんだろうが。
- 190 名前:186 mailto:sage [2008/04/11(金) 01:55:57 ]
- >>189
んと、言語として「プログラマのためにあーなって」るのは否定も嫌悪もしてないっす。 ただ、とりあえず現状の(というか「lexer/parserを分離する事が前提…」であると?) 実装は、大変そうだな、と。lex_stateとかlex_stateとか。 だからといって、プログラミング言語の文法に置ける、人にとってのsimplicityの定義: LALR(1)に収まること。 っていうのは違うよなぁ。 おぉっと、Scalaな話からそれてしまう。いいかみんな、共産ゲリラたちが発する電磁波は……
- 191 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:27:00 ]
- >>189
Ruby書きづらいし遅くて使い物にならないけど
- 192 名前: mailto:sage [2008/04/12(土) 01:23:41 ]
- Scalaの日本語版Wikipediaには影響を受けた言語にRubyが入ってるけど、英語版にはない。
- 193 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 01:48:56 ]
- >>192
それはひどいな 捏造かよ
- 194 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 03:18:59 ]
- もうRubyはいいって。
内容のある比較もないし。
- 195 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 08:57:01 ]
- >>191
負け惜しみ乙。どこがどう書きづらいんだよw
- 196 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 12:30:55 ]
- てかscalaとrubyってユーザそんなに被らないと思うけどなあ
RoRとかが出てきてから流行に乗っかるような「現実的な」ユーザにとっては 今のscalaはまだ使う価値がないと思うし
- 197 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 12:59:55 ]
- Ruby信者はRubyより優れている所があると言われる言語にでていく習性があってだな…
格下認定(HSP,PHP,LISP,VBあたり)されるか、信者(HaskellとかErlang?)が突撃してくるかくらいしか選択肢がない。
- 198 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:37:37 ]
- >>195
うわぁ・・・Ruby信者いいかげんにしろ
- 199 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:42:28 ]
- こたえられないんですね。
完膚なきまでに論破。
- 200 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:47:39 ]
- 信者なのかアンチの嫌がらせなのかの区別がつかない。
どちらにしてもScalaの絡まないRubyの話は Ruby関連のスレかLLスレでやってほしい。
- 201 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:26:20 ]
- Railsにブチ切れた外人がフレームワーク作った模様
InfoQ: David Pollak氏 lift と Scala を語る www.infoq.com/jp/news/2008/03/liftweb
- 202 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 22:17:14 ]
- >>189,191,198,199あたりはRubyを貶めようとする輩の自作自演の可能性が高い。
本当のRuby信者がRubyの心証が悪くなるような行動をするわけがない。
- 203 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 22:23:48 ]
- まつもとゆきひろが率先してやってる件について
- 204 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 22:25:39 ]
- >>202
>>195が抜けてるけど>>195ですか?
- 205 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 22:29:16 ]
- すまん、訂正する。>>189,191,195,198,199あたりはRubyを貶めようとする輩の自作自演だろ。
- 206 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 22:56:28 ]
- なんでもかんでもアンチのせいにしてごまかそうとしてるな酷すぎる
- 207 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 23:21:34 ]
- >>202-206
>200 >どちらにしてもScalaの絡まないRubyの話は >Ruby関連のスレかLLスレでやってほしい。 どうでもいいけどRubyスレのほうが盛りあがっててワロタ 良く釣れる連中だから遊んでもらえるんだな
- 208 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 23:26:34 ]
- そんなことより2.7.1RC1が出てるぞ
バグフィックス中心だけど、簡単な正規表現ライブラリも追加されている
- 209 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 23:30:28 ]
- 正規表現だってー!!
- 210 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 10:26:23 ]
- java.util.regex.*でいいじゃん...
- 211 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 12:18:10 ]
- 鬼車キボン
- 212 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 13:23:47 ]
- またRuby厨が沸きそうなネタを…
- 213 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 14:12:42 ]
- PEGの方がいいじゃん
- 214 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 14:45:28 ]
- >>210
いや簡単なjava.util.regexのラッパー
- 215 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 15:19:47 ]
- 自前LL作るときにJVM利用する価値があるのは同意する。
しかしライブラリまでラッパでおk、ってのはいかがなものか。 たしかにJavaの豊富かつ実績のあるライブラリが使えるのはすげーメリットだが、 自前言語に合った、使いやすい物をもっと作れるはずだろ。インタフェース的な意味で。 藻前らが独自言語を設計してもJVMの命令列に落とすのと同じだ。 独自インタフェースのライブラリを設計して、標準ライブラリを利用しろよ。 Java標準パッケージ脳乙。 ということを繰り返し書いている漏れは……うー。 もしこれ以上雑多な拡張が必要になる将来が来るなら、それよかPEGにしたらいいと思う。 >regex
- 216 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 16:23:42 ]
- なんだregexリテラルくらい作ってくれればいいのに
- 217 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:42:33 ]
- >>216がフラグ立てた。(リテラルっぽい表記をライブラリで実現する的な意味で
- 218 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:00:15 ]
- まあ、"abc".r で正規表現オブジェクトができるから短かくは書けるけど
- 219 名前:216 mailto:sage [2008/04/13(日) 19:53:32 ]
- >>217
Scala触ったこともないんだけどだいぶ待ってもらっていい? ……と書こうとしたら>>218でオワタ
- 220 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:12:23 ]
- /abc/と書けないのは中途半端だな。
- 221 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:17:16 ]
- >>213
scalaにPEGライブラリってあったっけ?
- 222 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:35:08 ]
- >>221
無いけど、Parser Combinatorがそれに近い
- 223 名前:デフォルトの名無しさん [2008/04/14(月) 07:24:37 ]
- PEGとParser Combinatorってどうちがうの
- 224 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 16:41:54 ]
- >>218
いっそのこと、文字列から正規表現への暗黙の変換を定義するというのはどうだろう 以下のような感じで(2.7.1.RC1じゃないと動かないので注意) import scala.util.matching.Regex implicit def string2Regex(s :String) :Regex = new Regex(s) for(r <- "[0-9]+" findAllIn "123 456 789") println(r)
- 225 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:45:38 ]
- > 文字列から正規表現への暗黙の変換
実にPerlish……けど型が保証されるから問題無しか。すげ
- 226 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:06:50 ]
- 毎回やるのは嫌すぎるぞ。Emacsのようにキャッシュ利かせるとかしないと。
- 227 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:09:35 ]
- 個人的にはこのくらいで変換はしない方がいいと思うが
じゃあどういう基準で変換すべきかというのがわからんな 新技術はこういうところが困る
- 228 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:17:09 ]
- キャッシュねえ…こんな感じ?
import scala.util.matching.Regex import scala.collection.mutable.HashMap object RegexConversion { private val cache = new HashMap[String, Regex] implicit def string2Regex(key :String) :Regex = { cache.synchronized { cache get key match { case Some(regex) => regex case None => val regex = new Regex(key) cache(key) = regex regex } } } } import RegexConversion._ for(r <- "[0-9]+" findAllIn "123 456 789") println(r)
- 229 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:18:34 ]
- >>227
まあ、自分で書いといてなんだが、俺もこういうケースで implicit conversion使うのが良いかっていうのはちと疑問ではある ただまあ、実害があまり無い使い方ではあると思う
- 230 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:16:55 ]
- これはひどい
- 231 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 01:06:52 ]
- >223
PEG: 文法の記法 Parser Combinator: パーザの実装方法の一つ(ちょっと違うけどそんなもん)
- 232 名前:デフォルトの名無しさん [2008/04/15(火) 07:34:18 ]
- パーザコンビネータつうのは文法とか文法解析のアルゴリズムとは独立してるもんなの?
- 233 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 11:00:07 ]
- >>232
実際に使えるパーザコンビネータはほとんど再帰下降型(+バックトラック)だと思う ただ、LRなどのボトムアップ型も作れないことは無い、はず
- 234 名前:デフォルトの名無しさん [2008/04/17(木) 23:59:23 ]
- ScalaってWindowsでまともなプログラム書けますか?
サーバーサイドじゃなくって Scala.netって止まってるような気がするけど・・・
- 235 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 00:04:09 ]
- うぜぇ。文句があるならRubyでも使ってろ。
- 236 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 00:19:33 ]
- WindowsユーザはScala使うな
- 237 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 00:23:10 ]
- 知的水準の低い人はScalaを使わなくて結構です
- 238 名前:デフォルトの名無しさん [2008/04/18(金) 00:34:56 ]
- なんだ。関数型言語ってやっぱり学者しか使わないか・・・
- 239 名前:デフォルトの名無しさん [2008/04/18(金) 00:51:52 ]
- ごめん、嘘です。気を悪くしたらスマソ。
「自分がやられて嫌なことは、他人にしたらいけない」って死んだ猫いってたのを思い出した・・・
- 240 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 14:23:55 ]
- 何この流れw
- 241 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:13:35 ]
- >>234
ScalaでWindowsのGUIプログラム書けるかって話なら Swing/AWT使うか、SWT使うくらいしか選択肢は無いんじゃない?
- 242 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:26:24 ]
- 「まとも」=「GUI」!
- 243 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:55:27 ]
- >>241
.NET対応がちゃんとしてくれるんなら、それでいいっす^^
- 244 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 20:04:12 ]
- >>242
234の文章から、234の考える「Windowsのまともなプログラム」を推測すると、 俺もそうなる。
- 245 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 20:18:19 ]
- >>242
>>244の書いてる通り、234の文章から、234が考える「Windowsのまともなプログラム」 =GUIプログラムのことと推測したまで。俺自身が「Windowsのまともなプログラム」= GUIプログラムのことだと考えてるわけじゃない
- 246 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 20:27:57 ]
- SWT使えば見栄えも問題ないよ
- 247 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 09:26:39 ]
- あんな低レベルのGUIに満足してるの?
- 248 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 09:44:53 ]
- 俺はGUI全く使わない。
- 249 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 10:36:08 ]
- GUIも使えるけどあえて使わないってこと?今だにキャラクタベースのUIのほうが玄人っぽいとか、そんな発想?
あなたのような人には文字ベースで十分なのかもしれないけれど、一般的な用途にはGUIが必要とされる時代なんです。いい加減わかってください。
- 250 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 10:59:27 ]
- お前のことはお前が決めろ。
- 251 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 11:10:36 ]
- >>247
世の中はOSと違うインターフェースは敬遠されるらしい
- 252 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 11:13:56 ]
- 必要なものを自分で作る能力のないプログラマが飛び付く言語じゃない。
- 253 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 12:20:38 ]
- >>242>>244
おそらく、>>234=>>243なので、さらにその内容を合わせると >>234の考えるまともなプログラム =「.NET Framework を使ったGUIプログラム」 というように読める。
- 254 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 17:51:36 ]
- どちらかというと言語がプログラマの要求についてこれれてない部分があるっつーことでしょ。
その辺を他言語と比較されるとすぐファビョりはじめる奴がいるのが困りものだね。
- 255 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 21:28:40 ]
- .NET対応ってそんなに要求あるのかな?
Java VMで十分な気がするけど
- 256 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:33:18 ]
- Introduction to SDT
www.codecommit.com/blog/misc/introduction-to-sdt/ 期待。
- 257 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:55:30 ]
- Emacsにも補完つけてほしい
- 258 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:33:45 ]
- Stream.const がはじかれるんですが、これっていつからの関数ですか?
- 259 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:54:41 ]
- Stream.consのことか?
|

|