[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 09/04 23:04 / Filesize : 158 KB / Number-of Response : 669
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミング言語 Scala



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をフル実装してかつ不変な構造にしたかったら、だな。
なんか関数型言語脳になってきたのかもしれん。








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<158KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef