[表示 : 全て 最新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/

628 名前:619 mailto:sage [2008/12/20(土) 13:05:01 ]
>623
古来中国では「的を射ない」ことを「失鵠」とも表現していました (鵠 はこの場合的の
中心の黒丸のこと; 正鵠など)
だから「失う = 得ない」で「漢字の用法」としては必ずしも間違っておらず、事実厳密
な議論では「どちらも可」となっているようです
ただなるほど国語辞典などでは「的を射る」の方しか載ってないので、「普通の日本
語」としては「的を得ない」は非推奨、ということになるようです
実際には「的を得ない」の方がはるかに広く使われてるようですが

629 名前:619 mailto:sage [2008/12/20(土) 13:08:52 ]
>>627
Java、ECMAScript と E4X をざっと
ほかは Scheme や Haskell などは日本語訳でだけス
てか、これらの文章が良すぎだったのかな?

630 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 13:34:20 ]
>>629
PrologのISO規格書が面白いのではないか。スタックモデルで説明している。
BNFも併記されてたと思うけど。

631 名前:619 mailto:sage [2008/12/20(土) 13:44:50 ]
Prolog は、MSX のころに 98 用 BASIC で記述されたミニマム Prolog を移植して
ちょっと遊んで以来
ちなみに自分初の処理系移植実装な経験 (懐
もしかして誤解されてるかもですが、別に言語仕様マニアではなく、Scala では
チュートリアルでも ByExample でも「全体像」がさっぱり会得できなくてしかたな
く言語仕様にトライするしかなかっただけなのでス

632 名前:デフォルトの名無しさん [2008/12/20(土) 14:58:39 ]
まあ少しずつやっていきなよ。

633 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 15:34:12 ]
>>628
漱石枕流乙

634 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 18:45:34 ]
ジョイン計算理論って何よ

635 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 19:33:44 ]
>>634
たぶんJoin-calculus
en.wikipedia.org/wiki/Join-calculus
のことだと思う。全然知らないけど、分散計算の形式的な計算モデルの一つらしい

636 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 19:57:19 ]
>>634
ラムダ計算を並行性の観点から鍛え直したのがパイ計算
ttp://web.yl.is.s.u-tokyo.ac.jp/kobalab/kadai99/picalc.html
で、それにさらに場所階層性を導入したのがジョイン計算
ttp://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070531
(すごい分かりやすい pdf があったけどパスワード封鎖されたようで、
現状で日本語での記事はこの程度しか見あたらず、2 項目の JoCaml
の部分)
ちなみに OCaml から JoCaml を作る過程で練り上げられた理論っぽい



637 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 20:38:54 ]
なるほど
Scalaのどの辺がそれに基づいてるの

638 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 00:30:03 ]
「Scala開眼」を書いた人がこの中にいるな

639 名前:620 mailto:sage [2008/12/21(日) 00:58:28 ]
>>637
Scala.Actorsとか。
こういうのは仕様書やライブラリのAPI見れば分かる話じゃないよ。
知っているのと知らないのでは理解の速度が全然違うし、
モデルの把握もしやすくなる。

>>626の言うようにScalaはいろいろといいところがあるんだけど、
解説文が少なくてあまり理解されてないと思う。
まあ>>622にある論文読めばいいんだけどw



640 名前:636 mailto:sage [2008/12/21(日) 11:12:25 ]
Scala のオブジェクト指向導入は ML 系からのアバウトな逸脱ではなく、ジョイン
計算の場所階層性 (プロセスは「場所」に属し、チャネルはその場所階層を上
位へとさかのぼりつつ目的のプロセスを検索する) をクラス階層と解釈しての
きちんとした理論を背景とするものである、ということ
これで何がうれしいかというと、プログラムの実行時エラー皆無性が計算で事
前に証明可能になる、つまり静的型のエラー回避性が動的結合にも延長でき
るようになる
ということらしい

641 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 19:37:52 ]
> つまり静的型のエラー回避性が動的結合にも延長できるようになる

面白そうですが、今の型システムで回避できなくて、join計算で回避できる
ようなエラーってどういうもの?

642 名前:640 mailto:sage [2008/12/21(日) 20:19:02 ]
先の今は見れない pdf では純粋にプロセス間通信に限ればそこにおける
予期せぬエラーが理論上ゼロとなることを証明してました 、たしか
むろん、ハードのエラーとかプロセス間通信以外に起因するエラーは回避
不能なはずですが
ちなみに、パイ計算の方はたしか理論上どうしても無限回帰になってしま
う場合があったはず (非理論的なメタ制約を与えれば回避できるようですが)

643 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 13:02:43 ]
>>639
Actorとπは別もんだろー。

644 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 18:35:11 ]
Scalaのpattern matchingは、
Join calculusとの関係が深いです。例えば、
ALGEBRAIC PATTERN MATCHING IN JOIN CALCULUS
arxiv.org/pdf/0802.4018
そのpattern matchingを使えば、
多くの並列計算モデルが、
「ライブラリとして」実装できるというのが、
Scalaの核の一つです。
Scala.Actorsはその実装の一つで、
ライブラリのソースも公開されています。
ちなみにお父さん言語のFunnelでは、
もっとJoin calculus丸出しの文法でした。

645 名前:デフォルトの名無しさん [2008/12/23(火) 01:09:04 ]
【Programing in Scala】ついに届いた(笑)

自主学習進みすぎて、最早入門書は要らないんだがな・・

646 名前:デフォルトの名無しさん [2008/12/23(火) 11:24:49 ]
ついに購入者が!!
どこで注文したの?



647 名前:デフォルトの名無しさん [2008/12/23(火) 17:24:59 ]
>>646
Artimaのサイトで9月くらいから予約済

648 名前:556 [2008/12/23(火) 23:14:15 ]
2.7.3 RC1
www.scala-lang.org/node/417
はやっ

649 名前:デフォルトの名無しさん [2008/12/23(火) 23:33:16 ]
ちゃんと日本にも発送してくれるんだ
かなり待たされたね

で、結局Amazon.co.jpではいつまでたっても買えないんだろうか??

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