- 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/
- 650 名前:デフォルトの名無しさん [2008/12/24(水) 07:02:59 ]
- Scalaで実行時にScalaのソースファイルをコンパイルして
出来たクラスのメソッドをリフレクションで実行したい時ってどんな風に書く?
- 651 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 09:08:48 ]
- >>624
ほっとくとめっちゃCPU食うよ 職場着いたら部屋が微妙に暖かかった…
- 652 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 16:46:47 ]
- プログラミングしりとり
schiphol.2ch.net/test/read.cgi/575/1010948472/l50
- 653 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 21:57:01 ]
- >>650
Scala コンパイラソースの scala/tools/nsc/Interpreter.java interpret メソッド (475 - 520 行) 427 - 432 には compileSources、437 - 438 には compileString なんてメソッドも ただし当然 scala-compiler.jar もクラスパス組み込みのこと
- 654 名前:653 mailto:sage [2008/12/24(水) 22:00:54 ]
- あと、883 - 898 の loadAndRun: メソッドで名前どおりリフレクションロード & 実行
- 655 名前:デフォルトの名無しさん [2008/12/24(水) 22:11:43 ]
- >>653-654
thx!
- 656 名前:デフォルトの名無しさん [2008/12/25(木) 10:19:00 ]
- www.ibm.com/developerworks/jp/java/library/j-scala04298.html
>trait が実際にクラスの一部として組み込まれるまで >trait の振る舞いの定義はチェックされません。 >あるいは別の言い方をすれば、trait を使用するクラス定義の中に >組み込まれるまで適切さをチェックされないメソッドを定義することができます。 これはどういう意味か教えてください あとclassに出来てtraitに出来ないことってnewだけで、 他は何でも出来るという理解でいいのでしょうか
- 657 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 11:07:52 ]
- 「late binding」ってことだけど。
C++0xだとtemplate/conceptで使うlate_checkってキーワードが増えてます。 これがないと、 > あとclassに出来てtraitに出来ないことってnewだけで、 > 他は何でも出来るという理解でいいのでしょうか となって全く使えない。
- 658 名前:657 mailto:sage [2008/12/25(木) 11:49:07 ]
- ibm.comが調子悪かったからみれなかったけど、
具体例でちゃんと説明書いてあるじゃん。 良く読みこなそう! C++はブロックごとに指定。 template <Semigroup T> T add(T lhs, T rhs) { return x + y; // Semigroup<T>::operator+ } template <Semigroup T> T add(T lhs, T rhs) { late_check { return x + y; // class Tのoperator+ } }
- 659 名前:デフォルトの名無しさん [2008/12/25(木) 11:53:12 ]
- C++ 0xのlate_checkはコンセプトじゃなくて
生成したソースコードで判断するというものですよね traitはそれに近いようなことをやってるということですか? 具体的にどういうコードを書けば遅延バインディングされるんですか?
- 660 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 13:05:13 ]
- www.ibm.com/developerworks/jp/java/library/j-scala04298.html
のどの部分が分からないの?
- 661 名前:デフォルトの名無しさん [2008/12/25(木) 13:10:45 ]
- >>660
>trait が実際にクラスの一部として組み込まれるまで >trait の振る舞いの定義はチェックされません。 >あるいは別の言い方をすれば、trait を使用するクラス定義の中に >組み込まれるまで適切さをチェックされないメソッドを定義することができます。 この文章以外は分かりました traitのメソッドでも定義されていない変数なんかを使えば普通にコンパイルエラーになるので 適切さをチェックされないメソッドというのがどんなものなのかが分からないのです
- 662 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 16:30:05 ]
- trait 中の定義は、実際にはそれを実装するクラスか、あるいはスーパークラス
内のプライベートメンバとしてその本体は別名定義され、trait 中のシグネチャが それにアクセスするゲッタセッタの形になります また、trait からはそれが指定される位置以前のほかの trait などの名前が見え るようになっています。このため、指定順を入れ替えると動作が変わることもあ りえます
- 663 名前:アク禁解禁 mailto:sage [2008/12/27(土) 16:40:54 ]
- >>661
Orderd[A]の例だと def compare(that: A): Int の定義の存在はチェックされずに、Ordered[A]をコンパイルできます。 Object withするまで定義の存在はチェックされないわけです。 宣言の正当性はチェックされているのですが。
- 664 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 22:36:35 ]
- scala.xml.NodeSeqの\\メソッドでXPath式っぽいのをかけるけど
これXPathにしなかったのはなんでだろう。 素直にXPathが使えればもっと簡潔にかけるのに。 あと属性のパターンマッチできないのも中途半端。これは属性定義が順序をもたないからだろうか?
- 665 名前:デフォルトの名無しさん [2008/12/27(土) 22:38:44 ]
- >>662-663
なるほどありがとうございます
- 666 名前:デフォルトの名無しさん [2008/12/28(日) 10:58:57 ]
- XPathを完全に実装しようとおもったらノードの構造をZipperとかにしないといけなくなる。
- 667 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 20:52:47 ]
- 本家サイトで XML の鉄人の参加を募集してることからして、そっちの方は
まだ十分にカバーできてないっぽい感じ
- 668 名前:デフォルトの名無しさん [2008/12/28(日) 21:23:08 ]
- >>666はよく考えたら違うな。
XPathをフル実装してかつ不変な構造にしたかったら、だな。 なんか関数型言語脳になってきたのかもしれん。
|

|