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/
481 名前:デフォルトの名無しさん [2008/10/06(月) 00:30:08 ] 執筆はどの時点で終わってるの?
482 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 01:14:30 ] ScalaByExampleのサンプルで動かなかったので質問 9.3章の最後 val intSort = msort((x: Int, y: Int) => x < y) val reverseSort = msort((x: Int, y: Int) => x > y) 最後に'_'がない 10.3章 for { i <range(1, n) j <range(1, i) if isPrime(i+j) } yield {i, j} List.range()になってない 最後が(i,j)じゃない これってサンプルのミスってことでいいの?
483 名前:デフォルトの名無しさん [2008/10/11(土) 19:31:52 ] 昔のバージョンではメソッドから関数への変換は _ つけてなかったし、タプルリテラルも中括弧だった(不評のためすぐに小括弧になった)。rangeは覚えてないけどそうだったんだろうね。
484 名前:デフォルトの名無しさん [2008/10/11(土) 19:42:07 ] rangeは単にミスか省略か前提があるのかも。
485 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:59:16 ] ただのミスでしょう。ScalaLanguageSpecificationやScalaByExampleには新版ではエラーに なる旧版のままの例のほかにもひと目でわかるタイプミスもときどきあります
486 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 00:07:59 ] 解答サンクス 仕様変更にリファレンスが追いついてない状態なのね 本の出版が遅れるのも納得だわ
487 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 12:48:50 ] 見つけたScala Language SpecificationやScala By Exampleのミスは、 MLで報告してあげると良いかも。英語で質問するのは敷居高いと思うかも しれんが、適当な英語でもそれなりに意味を汲み取ってくれるので、大丈夫
488 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:26:54 ] 2.7.2 RC3でた
489 名前:デフォルトの名無しさん [2008/10/18(土) 12:49:41 ] pragprog.com/titles/vsscala/programming-scala
490 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 13:20:09 ] >>489 > March 30, 2009. orz
491 名前:デフォルトの名無しさん [2008/10/18(土) 13:53:15 ] あー489はOdersky本とは別ですよ。タイトル同じだけど。 これも別ね。 blog.aspectprogramming.com/2008/10/6/writing-a-book-on-scala
492 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 00:22:05 ] タイトル、微妙に違うくね?
493 名前:デフォルトの名無しさん [2008/10/22(水) 07:54:12 ] Programming in Scala is at the Printer www.nabble.com/-scala--Programming-in-Scala-is-at-the-Printer-td20098100.html#a20098100 > most likely we'll be shipping printed copies to all those who bought them the second and third week of November. まだ先かー。
494 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:03:02 ] 今日は、Scala勉強会@東北の日。東北と言っても、開催するのはネット上。夜の8時から。
495 名前:デフォルトの名無しさん [2008/10/24(金) 20:23:54 ] エロい人ならScalaでグラフ構造ってどうつくるんだろう? 自分でつくると、JAVAで作ったのと変わらない物ができてしまう・・・ caseクラスとか駆使して、もっと、かっちょよく作れないもんかな。
496 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 22:16:36 ] そんなメタな構造なら、どんな言語で作っても基本は同じになるんじゃない? それにメタであるだけに、応用によって実装のしかたは変わるし。 「アルゴリズムがJavaならオブジェクト指向に!」みたいな違和感がある。
497 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 07:07:55 ] Scalaって下がJavaだから仕方ないんだろうけど、 他の関数型言語だと構文で解決するようなものを 動的な仕組で無理矢理そう見せてる部分が筋がよくなくてどうにも気持ち悪い。
498 名前:デフォルトの名無しさん [2008/10/25(土) 12:34:48 ] tatoeba?
499 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 15:26:47 ] >>497 んなこたあ無いと思うが、具体例は?
500 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 16:42:48 ] >>497 え?動的な仕組で無理やり解決?それってむしろ他の関数型言語でしょ。 Scalaは静的な仕組みで無理やり解決だよ。
501 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 16:49:35 ] リストの構築子も :: なんてそれっぽいものを用意してはあっても 所詮はメソッドのお化粧なのでパタンに書けないとか。 パタンマッチするのにケースクラスなんてものを導入せざるを得なかったのが そもそもそうだと思うし。
502 名前:デフォルトの名無しさん [2008/10/25(土) 17:29:45 ] ポイントがよくわからんので具体的なコードで他言語と比較してほしいなあ。
503 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 18:01:52 ] >>501 なんとなくわかった。 ちょっと違うが、JavaのGenericsのような無理や不自由さがあるということか。
504 名前:デフォルトの名無しさん [2008/10/25(土) 18:04:49 ] 余計わかんねー。Javaのジェネリクスって動的な仕組みなの?
505 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 18:10:26 ] >>501 えーと、::はListクラスのメソッドであり、かつcase classだからパタンに書けるんだが… それはともかく、ケースクラスを導入せざるを得なかったってのは違うと思うな パターンマッチングという機能をプリミティブで拡張性の無いものでなく、ユーザが 後付けでパタンを定義できて拡張性のあるものにするためにどうすればいいのか という問題に対する解の一つがケースクラスなりExtractorであるってことだと思う MLとかのパターンマッチに関する有名な問題の一つとして、抽象データ型に 対してパターンマッチできん、というのがあるけど、Scalaではこの点はそもそも 問題にすらならない
506 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 22:00:06 ] >>504 仕組みや目的はまったく違うけど、VMの仕様が言語に影響して無理があって不自由なところが一緒かと
507 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 11:17:41 ] JVM 上の Scheme とか普通にあるし、VM の仕様より、既存の Java ライブラリとの親和性を 重視してるかどうか、の違いでわ?
508 名前:デフォルトの名無しさん [2008/10/26(日) 19:05:01 ] なんつーか、JVMの仕様からくる言語使用上の制約は実際あって思いつくけれども、 最初に動的とか非関数型的とかって書いたのはテキトーでしょ? いずれにせよもうちょっと具体的に語ってくれればその通りだねとかいやそれは違うとかいえるんだけどさ。
509 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:59:56 ] >> 507 動的な型の言語と比較するのはあまり意味がないと思われる。
510 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:37:34 ] >>506 Javaからも呼び出せるように class としてバイナリを作成するがために、言語仕様に制約が出ているんじゃないかってことと考えて良い?
511 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 09:19:20 ] >>501 そりゃ構文の話で、動的とか静的とか関係ないだろ。
512 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 09:27:01 ] >>505 case classを使ったパターンマッチを、 クラス上のデザインパターンにするって主旨の設計だからねえ。 データ構造に依る分岐構造を、 データ構造上のcase classにまとめて整理しようって考え。 Scalaは型大好きだから。 パターンマッチ作法が強制されるけど、 整理の仕方としては面白いわね。
513 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 11:52:41 ] オカマっぽい
514 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 20:20:27 ] >>513 すまん。女です。
515 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 10:13:26 ] ワロタ
516 名前:デフォルトの名無しさん [2008/10/30(木) 02:43:53 ] 2.7.2 RC4でた
517 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 01:52:02 ] RC5でた
518 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:54:35 ] RC6でた
519 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 21:36:53 ] RC7でた
520 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 23:10:55 ] いや、マジで 今 RC6
521 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 00:43:24 ] RC8来たよ
522 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 01:14:09 ] マジかと思って見てみたらRC9が出てるし
523 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 01:35:29 ] Programming in ScalaってAmazonとかで買えるようになるんですかね?
524 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 19:27:53 ] そうして RC365 まで毎日でるわけですね
525 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:02:39 ] >>524 そこまでRubyの真似をしなくていいよwww
526 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 01:01:21 ] >>525 Vimのまねだったらやだな。
527 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 10:30:07 ] D言語みたいに、0.99から0.100になるよりは期待感なくてよいじゃないの
528 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 11:49:46 ] scala・・・この言語イマイチだねえ
529 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 11:50:38 ] とにかく中途半端な印象しかない
530 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 16:26:21 ] とにかくイマイチ絶対に例を挙げない
531 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 17:36:06 ] あくまで実用本位で言語オタク受けは眼中にないからな
532 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 17:46:01 ] えっ!?
533 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 19:06:39 ] rubyの気持ち悪さ異常
534 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 22:11:20 ] ruby や groovy は、いいときはミラクルなまでにサクサク進むけど バグるとプロでもさじを投げるぐらいデバッグが超絶困難なようだね
535 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 22:42:12 ] コミュニティの性格に似てるかもな。 好きなスタイルで気分良くモノを進めている時は非常に良い顔を見せるが、 好まないスタイルとの出会いや不機嫌に耐性が無く、そういう時は非常に排他的で非生産的になる。
536 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 23:54:23 ] >>534 普段、静的型付け言語とRubyつかっているけど、たまに頭のモード切替が不十分で 静的みたいに書いちゃって、なかなか気づかないバグ残したことがあるよ。 この前ハマったのは、クラスのプロパティをattr_accessorだかで定義して、 自クラス内でプロパティ名そのままでアクセスしようとして、上手くいってなくて、 1日悩んだ挙句、self.プロパティ名、でアクセスしないといけないことに気づいたことかなw アホか俺は、と思ったけどw
537 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 00:07:25 ] スレ違い
538 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 10:22:16 ] Actor の link って何に使うのか良くわからん・・・・
539 名前:デフォルトの名無しさん [2008/11/08(土) 12:25:48 ] 別のアクターが終了したのを検知する(あるいは一緒に死ぬ)ため。
540 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 15:06:14 ] ありがとうー。 Exit メッセージが来るってことですね。 てっきり、複数のアクタをグループ化して、メッセージのマルチキャストみたいなことができるのかと勘違いした。
541 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 15:08:13 ] あぁ、そうか。プロセスと同じように考えればいいのか。 親プロセスが死んだら、子プロセスも死なすって考えればいいのか。
542 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 15:51:32 ] メッセージのマルチキャストは、仲介役のアクタを用意して、自前でやるってことか・・・ www.nabble.com/Scala-actors-and-message-broadcasting-td19442504.html#a19442504
543 名前:デフォルトの名無しさん [2008/11/10(月) 12:20:05 ] Scala 2.7.2 final キタ!
544 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 21:13:27 ] 次は final2 がリリースされるんですね、わかります。
545 名前:デフォルトの名無しさん [2008/11/15(土) 08:39:33 ] Programming in Scalaって出版されましたか?
546 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 21:33:35 ] 11月25日前後を刮目して待て!
547 名前:デフォルトの名無しさん [2008/11/15(土) 22:09:54 ] 刮目して待ちます!
548 名前:デフォルトの名無しさん [2008/11/19(水) 00:11:34 ] Programming in Scala 出版age
549 名前:デフォルトの名無しさん [2008/11/19(水) 12:03:23 ] 紙の本はまだだな
550 名前:デフォルトの名無しさん [2008/11/20(木) 22:06:48 ] 紙のほうは日本で買えるんですか?
551 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 08:26:36 ] アマゾンで買えるようになんじゃね
552 名前:デフォルトの名無しさん [2008/11/25(火) 11:07:31 ] 下は公式サイト(確か・・)で取ったサンプルコードなんだが、 作成アクター数(nActors)が500くらいからエラー吐きまくり・・ 2.7.1の頃は、nActors = 1000でもちゃんと動いたんだが、 なんか知ってるエロい人いない? import scala.actors._ import scala.actors.Actor._ object Message { def main(args: Array[String]) { val n = try { Integer.parseInt(args(1)) } catch { case _ => println("Usage: examples.actors.Message <n-actors> <n-times>") Predef.exit } val nActors = 1000 val finalSum = n * nActors Scheduler.impl = new SingleThreadedScheduler
553 名前:デフォルトの名無しさん [2008/11/25(火) 11:08:50 ] // 続き1 def beh(next: Actor, sum: Int) { react { case value: Int => val j = value + 1; val nsum = sum + j if (next == null && nsum >= finalSum) { //println(sender) println(nsum) System.exit(0) } else { if (next != null) next ! j //println(sender) beh(next, nsum) }}}
554 名前:デフォルトの名無しさん [2008/11/25(火) 11:13:52 ] // 続き2 def actorChain(i: Int, a: Actor): Actor = if (i > 0) actorChain(i-1, actor(beh(a, 0))) else a val firstActor = actorChain(nActors, null) var i = n while (i > 0) { firstActor ! 0 //if (i % 100 == 0) println(i) i -= 1 }}}
555 名前:デフォルトの名無しさん [2008/11/25(火) 11:20:20 ] nActors >= 473 で 以下を延々吐くみたい at Message$$anonfun$beh$1$1.apply(message.scala:34) at Message$$anonfun$beh$1$1.apply(message.scala:25) at scala.actors.Reaction.run(Reaction.scala:78) at scala.actors.SingleThreadedScheduler.execute(Scheduler.scala:174) at scala.actors.Scheduler$.execute(Scheduler.scala:80) at scala.actors.Actor$class.send(Actor.scala:411) at scala.actors.Actor$$anon$1.send(Actor.scala:93) at scala.actors.Actor$class.$bang(Actor.scala:583) at scala.actors.Actor$$anon$1.$bang(Actor.scala:93)
556 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:50:27 ] StackOverflow が出てるんだけど、-Xmsをいくら増やしても改善しない。これはバグかもわからんね・・・
557 名前:デフォルトの名無しさん [2008/11/25(火) 18:51:51 ] Programing in Scala v6(PDFと紙で買える奴な) で、p73に val greetStrings = new Array[String](3) って言うコードがあるんだけどさ 2.7.2 final でインタプリタモード立ち上げて打ったら scala> val greetStrings = new Array[String](3) java.lang.NullPointerException at scala.runtime.BoxedArray._deepToString$1(BoxedArray.scala:134) at scala.runtime.BoxedArray.deepMkString(BoxedArray.scala:139) at scala.runtime.BoxedArray.deepToString(BoxedArray.scala:127) at scala.runtime.ScalaRunTime$.stringOf(ScalaRunTime.scala:163) at RequestResult$.<init>(<console>:4) at RequestResult$.<clinit>(<console>) at RequestResult$... だってさ \(^o^)/ 2.7.1は全く問題なし \(^o^)/ とってもBuggyです本当ny
558 名前:デフォルトの名無しさん [2008/11/25(火) 20:01:50 ] 何気にインタプリタでArrayを内容表示する方式が変わったんだな。 昔は [L 方式で、新しいのは中身も表示してあげようとして要素のtoString呼んじゃってるようだ。 ArrayのtoString自体には問題ないようなのでインタプリタ固有の表示ルーチン持ってるんかな。
559 名前:デフォルトの名無しさん [2008/11/25(火) 21:14:09 ] 昔は単純にオブジェクトのtoStringを呼んでたんだけど、 新し目の版ではScalaRuntime#stringOfってメソッドを追加してそっちを使っているようだ。 stringOfはval a = null みたいなのについて例外を出さなくしてくれるのだが、 ArrayについてはtoStringじゃなくdeepToStringを呼ぶようにしていて、 このdeepToStringは要素のnullには(たぶん昔から)対応していないんだな。
560 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 21:33:26 ] val greetStrings = Array.make[String](3, "") でとりあえず回避可
561 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 22:57:29 ] >>556 -Xss でかくするとか
562 名前:556 [2008/11/25(火) 23:29:14 ] >561 スマソ、556は-Xssのtypoでした。 Xmx,Xssとも増やしてもだめだった。>< ちょっとソース眺めてみたが、Actorまわりは結構手が入っている模様。 (スケジューラはインターフェースも変わっている) もしかしたら、SingleThreadedSchedulerはそれらに対応できていないのかもしれない。 lampsvn.epfl.ch/trac/scala/changeset?old_path=%2Fscala%2Ftrunk%2Fsrc%2Factors%2Fscala%2Factors%2FScheduler.scala&old=13978&new_path=%2Fscala%2Ftrunk%2Fsrc%2Factors%2Fscala%2Factors%2FScheduler.scala&new=16207 ちなみに、上記のソースも Scheduler.impl = new SingleThreadedScheduler をしなければ、動くはず。
563 名前:561 mailto:sage [2008/11/26(水) 12:57:09 ] java -Xss64M -cp scala-library.jarのパス:. Message 1000 1000 こちらではこれで動きますた
564 名前:561 mailto:sage [2008/11/26(水) 13:16:35 ] ちなみに Scheduler.impl = new SingleThreadedScheduler をしてる方 あと、デフォらしい -Xss512K では StackOverFlow しましたが -Xss1024K なら大丈夫でした
565 名前:556 mailto:sage [2008/11/26(水) 13:43:32 ] >563 むむっ・・・本当ですね・・・ 当方、環境変数JAVA_OPTSで設定していたつもりが、 なにか間違っていて設定が効いてなかったみたいです。orz 結局、単純に2.7.2でスタックの消費量が増えてたってことっすね・・・
566 名前:デフォルトの名無しさん [2008/11/27(木) 23:58:25 ] >>551 本当にアマゾンで買えるのかなあ? いまだに上がってない・・・ 3月発売予定の達人のほうは上がっているのに・・・
567 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 00:55:36 ] まだみたいだね www.amazon.com/dp/0981531601/
568 名前:デフォルトの名無しさん [2008/12/01(月) 10:45:13 ] 買えるようになったな
569 名前:デフォルトの名無しさん [2008/12/08(月) 07:09:25 ] 今日、やっと pattern matching の凄さを、下にある OCaml の 加減乗除算式を変形する コード例で理解できました。 www.ocaml-tutorial.org/ja/data_types_and_matching pattern matching だけならば python でも近いことが実装できそうな気がしますが、「 Warning: this pattern-matching is not exhaustive.」と警告を出すことは不可能とし か思えません。 でも OCaml ではライブラリの蓄積に限りがあります。本格的に OCaml をやるのは躊躇わ れます。Scala の pattern matching でも OCaml と同等の「this pattern-matching is not exhaustive.」警告を出してくれるのならば OCaml ではなく Scala に挑戦してみ たいと思います。 Scala の pattern matching でも 「this pattern-matching is not exhaustive.」警告 を出してくれるのでしょうか? 少し google しても、下のようなことも書かれています。 lampsvn.epfl.ch/trac/scala/ticket/335 Scala の 「pattern-matching is not exhaustive.」警告について教えてくださいませ。
570 名前:デフォルトの名無しさん [2008/12/08(月) 09:07:06 ] >>21 を読めばいい
571 名前:デフォルトの名無しさん [2008/12/08(月) 13:01:16 ] >>570 >>21 を読めばいい 御指摘、ありがとうございます。 若干のバギーな面があるにしても OCaml に近い pattern matching 処理を scala でも書 けそうですね。 Scala に喰らい尽きたくて涎が出ています。ただ、scala に移ってくる programmer の割 合が心配です。Java programmer の殆どは scala には移ってこないだろうと思っていま す。Python から scala に来る programmer の方が多そうに思えます。
572 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 22:57:13 ] >>571 誰がどこから移ってくるとかどうでもいい
573 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 09:15:41 ] どうでもいいと思ってるなら書かなきゃいいのに。 いちいち自分の興味ない話題に「どうでもいい」なんてレスしてたらキリないぞ。
574 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 09:44:20 ] 「どうでもいい」厨にレスしなくていいよ。 どこにでもいるから。 専用ブラウザのあぼーんに設定しておけばそれで済む話
575 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 17:12:50 ] 自意識が分相応なところに落ち着く前の年齢なんでしょ。 「この俺が、他ならぬこの俺が、どうでもいいと思った! この話題自体はどうでもいいことだが、この俺がどうでもいいと思ったことは なんとしても書き込まれねばならない重大ニュースだ!」
576 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 17:15:20 ] なんて中身の無いスレだ
577 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 21:27:15 ] Scalaでスカラ
578 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 00:15:14 ] 珍しく書き込みが続いたと思ったらこれかよ
579 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 01:05:02 ] 3っつもレスがつくなんて>>572 も書き込んだかいがあったな
580 名前:デフォルトの名無しさん [2008/12/11(木) 08:47:42 ] >>569 です。scala へ飛び込むための背中押しをお願いします。また Java は殆ど使って いないので誤解があったら指摘してやってください。 Java の generics は C++ generics/python duck typing とは別物だと思います。実質 的には、collection に対する cast を省略するために導入された構文だと極論しても許 されると思います。 本来の generics programming は、method 構造の共用を利用したプログラムの共用だと 思います。例えば __add__ method と __len__ method が共用されている全てのインスタ ンスについて、下のような平均ルーチンを共用できることが generics programming だと 思います T mean(listOfT): T tAt = 0 for elm in listOfT: # sum up loop tAt = elm.__add__(tAt) return tAt/len(listOfT) この意味で C++ template と python duck typing は似ています。必要があれば boost library をpython に移植できます。一方で boost library を Java に移植するなんて無 理だと思います。 ------------------------------ ここで質問です。 scala の generics は Java と同じ/別物どちらでしょうか。 boost library などの C++ template program を scala に移植することは可能でしょう か。 これが可能ならば scala に飛び込みます。よろしく教えてやってくださいませ。
581 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 09:49:16 ] Scalaやらないでいいよ。