プログラミング言語 Scala
- 1 :デフォルトの名無しさん: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/
- 723 :デフォルトの名無しさん:2009/02/08(日) 22:45:31
- メモリ効率を重視する必要がある時に使ってる。
自分でナンバリングして整数型で扱うよりずっと型は強い。
- 724 :デフォルトの名無しさん:2009/02/08(日) 23:51:01
- Scalaって実際どんな時に使うもんなんでしょ。
Javaだとサーバーサイドでしか使えないイメージがあるけど・・・
みんな基幹とか、webサービスのサーバー側に使ってたりするのかな?
webフレームワークはleftくらいしか見かけないけど
- 725 :デフォルトの名無しさん:2009/02/09(月) 00:04:57
- >>724
先入観で凝り固まりたいように見える
- 726 :デフォルトの名無しさん:2009/02/09(月) 00:47:57
- >>725
うーん、実際の話をしているんですが、どうなんでしょうか?
- 727 :デフォルトの名無しさん:2009/02/09(月) 00:52:19
- >>724
> Javaだとサーバーサイドでしか使えないイメージがあるけど・・・
こういう人に答えても仕方ないしね。
- 728 :デフォルトの名無しさん:2009/02/09(月) 01:44:45
- 煽りを聞きたいのではないのですが・・・
- 729 :デフォルトの名無しさん:2009/02/09(月) 02:12:43
- そもそもScalaがJavaで書かれているのに、
サーバーサイドしか使えないってw
- 730 :デフォルトの名無しさん:2009/02/10(火) 01:12:49
- >>724
スレの上の方でも議論があるけど、π計算の延長上にある言語だから
SOAとかメチャ無茶やりやすいぞ。
デスクトップクライアントが作りたいならSwingでやればいい
SwingがPoorで嫌だと言うのであれば、3月まで待って、Qt4.5(LGPL)を使いなさん
- 731 :デフォルトの名無しさん:2009/02/10(火) 01:19:46
- >>729
>そもそもScalaがJavaで書かれているのに、
あんまりいい表現じゃないな・・・
- 732 :デフォルトの名無しさん:2009/02/10(火) 02:38:38
- >>724
liftだろ
- 733 :デフォルトの名無しさん:2009/02/10(火) 10:45:22
- というかソース見ればわかるけど、今のScalaはScalaで書かれてる。
1.XのときはJavaで書かれてたらしいけどね。
- 734 :デフォルトの名無しさん:2009/02/10(火) 20:20:42
- Scala をコンパイルするための Scala をコンパイルするための・・・
- 735 :デフォルトの名無しさん:2009/02/11(水) 09:02:15
- なに!ScalaはJVMで動作するのか!?
無駄スグルwww 一体何のために。。。
- 736 :デフォルトの名無しさん:2009/02/11(水) 09:17:32
- 無知すぎるwww
- 737 :デフォルトの名無しさん:2009/02/11(水) 09:52:40
- JVMつながりと言えば、Clojureのスレがないな……。
まぁS式嫌いなのでどうでもいいが。
- 738 :724:2009/02/11(水) 10:06:39
- ありがとうございます。
>>733 を見てうやむやが氷解しました。
Scalaを書くためのScala。
何か関数言語的な美しいひびきを感じます。
使う気がしてきました。
- 739 :デフォルトの名無しさん:2009/02/12(木) 02:57:16
- + や * はメソッドだって聞いたけど、
2 + 3 * 4 は 14ってちゃんと評価してくれるんだね
メソッドチェーンになるから、20が戻ってくると思った
これって遅延評価のおかげ?
Scalaのソースをちゃんと読まないといけないんだろうけど
- 740 :デフォルトの名無しさん:2009/02/12(木) 03:21:54
- +や*がメソッドだというのは間違ってないけど、中置式のメソッド呼び出しに
関しては、演算子の最初の1文字で優先順位が決まるというルールになってる。
このルールのおかげで、算術式に関しては直感的な動作をしてくれる。
Scala言語仕様6.12.3 Infix Operationsによると、優先順位は以下のようになってる。
letter < '|' < '^' < '&' < '<', '>' < '=', '!' < ':' < '+', '*' < '/', '%' < all other special characters
たとえば、
"HOGE" charAt 0 + 1
という式があった場合、charAtの最初の文字はletterなので、+よりも演算子としての優先順位は低い。
そのため、
"HOGE".charAt((0).+(1))
と解釈される。
- 741 :デフォルトの名無しさん:2009/02/12(木) 03:22:54
- 訂正。s/letter/all letters/
- 742 :740:2009/02/12(木) 03:25:55
- ありゃりゃ。コピペして不等号加えるときにミスったorz
正しくは、以下。
all letters < '|' < '^' < '&' < '<', '>' < '=', '!' < ':' < '+', '-' < '*', '/', '%' < all other special characters
- 743 :739:2009/02/13(金) 00:44:52
- >>740
サンクス
BigDecimalでも試したけど、ちゃんと掛け算・割り算を優先するってありがたいな
RemoteActorの動作がいまいちわからなかったり(コンパイルした後、scalaコマンドで動かないのに、javaコマンドからだったらちゃんと動くとか)
わからんことだらけなんだけど、しばらく弄ってみることにする
- 744 :デフォルトの名無しさん:2009/02/14(土) 03:01:26
- RemoteActorっていったら、
メッセージ送った分だけヒープが貯まっていくのな・・
Asyncで(actor ! msg な)メッセージ送ると、反応しないことが多々ある
インタプリタで使う限りは問題ににならないけど、コンパイルした途端にダメ・・
ありえねぇ・・・(;´Д`)
- 745 :デフォルトの名無しさん:2009/02/14(土) 18:03:54
- >>774
まさかとおもってやってみたら、思い切りOutOfMemoryしやがった(笑)
java.lang.OutOfMemoryError: Java heap space
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethod(Unknown Source)
at java.io.ObjectStreamClass.getPrivateMethod(Unknown Source)
at java.io.ObjectStreamClass.access$1700(Unknown Source)
at java.io.ObjectStreamClass$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.<init>(Unknown Source)
at java.io.ObjectStreamClass.lookup(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
- 746 :デフォルトの名無しさん:2009/02/14(土) 18:04:44
- (続き)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at scala.actors.remote.JavaSerializer.serialize(JavaSerializer.scala:37)
at scala.actors.remote.NetKernel.sendToNode(NetKernel.scala:32)
at scala.actors.remote.NetKernel.namedSend(NetKernel.scala:39)
at scala.actors.remote.NetKernel.forward(NetKernel.scala:71)
at scala.actors.remote.DelegateActor$$anonfun$act$1$$anonfun$apply$1.apply(Proxy.scala:168)
at scala.actors.remote.DelegateActor$$anonfun$act$1$$anonfun$apply$1.apply(Proxy.scala:125)
at scala.actors.Reaction.run(Reaction.scala:78)
at scala.actors.Scheduler$$anon$2.run(Scheduler.scala:77)
at scala.actors.FJTaskRunner.run(Unknown Source)
- 747 :775:2009/02/14(土) 18:06:57
- >>744 ですた(苦笑)
うーん、こういう不具合が未だにActor周りがver 1.0 にならない理由なのかな
2.7.2ではメモリーリークの不具合があったっていうし
- 748 :デフォルトの名無しさん:2009/02/17(火) 11:25:35
- 初学者にやさしい100〜500行くらいで書けるようなお題くれ
- 749 :デフォルトの名無しさん:2009/02/17(火) 11:33:01
- つ「正規表現マッチャ」
http://www.oreilly.co.jp/editors/archives/Btfl_Cd_01.pdf
http://www.oreilly.co.jp/editors/archives/000158.html
- 750 :デフォルトの名無しさん:2009/02/17(火) 12:49:40
- >>748
% 問題・・9時台から16時台(17時閉店)までの勤務表を作れ。
%
% 勤務表は1時間単位とする。
% 要員はAya、Koh、Sho の3名である。
% 最小勤務単位は2時間であり、一時間だけの勤務は認められない。
% 一人勤務は1時間までであり、もし一人勤務に就いたときは
% 次の少なくとも1時間は勤務につけない。
% 以下の時間は、それぞれ用事があり、勤務できない
% Aya・・14時台、Koh・・11時台と14時台、Sho・・9時台と11時台。
- 751 :デフォルトの名無しさん:2009/02/22(日) 03:21:25
- OreillyやAPressもScala本を出すみたいだね
http://oreilly.com/catalog/9780596157746/index.html#top
http://www.apress.com/book/view/9781430219897
Oreillyのほうは、Twitterの中の人が書いて
Apressのほうは、Liftの中の人が書いてるみたいです
- 752 :デフォルトの名無しさん:2009/02/26(木) 00:15:33
- >>737
Clojureは人口が少ないからね。scalaよりは。スレを作ってもarcスレみたいになりそう。
ircとgoogle groupをみてると盛りあがってるんだがね。
ScalaとClojureはライバル関係みたいだがなぁ。
ところでScalaでどのくらいの人口なの?
- 753 :デフォルトの名無しさん:2009/02/26(木) 00:57:02
- clojureやarcは「yet another my own Lisp」でしょ。
面白いところはあるけど、Scalaとは無縁。
- 754 :デフォルトの名無しさん:2009/02/26(木) 01:08:45
- >>753
調べた上でそういってるなら正しいが
- 755 :デフォルトの名無しさん:2009/02/26(木) 01:15:14
- 仮に調べてなくても正しいものは正しい。
- 756 :デフォルトの名無しさん:2009/02/26(木) 01:18:06
- >>755
それは率直にいうと頭が悪いな
- 757 :753:2009/02/26(木) 01:28:37
- >>753が間違っていると思う人は根拠を言ってみれば?
Scalaは静的な言語ですが、clojureやarcはそうではありません。
clojureなんて動的馬鹿といっていいような仕様です。
型システムや関数/メソッド呼び出しも全然違います。
OCaml辺りの方がずっとずっと近いです。
clojureやarcはLisp SchemeスレかARCスレがあるし、
ココで語る意味のある言語とは思えん。
- 758 :デフォルトの名無しさん:2009/03/02(月) 00:03:43
- Lift 1.0が出たとか
- 759 :デフォルトの名無しさん:2009/03/02(月) 01:30:11
- >>758
出ましたね。
APIドキュメントとか、Lyxで書いたドキュメントはいまいち整っていませんが・・
- 760 :デフォルトの名無しさん:2009/03/02(月) 01:34:09
- Terracottaの中の人(Scala OTPの作者)が、QCon Londonで発表するスライドも
SlideShareにupされています
ttp://www.slideshare.net/jboner/pragmatic-real-world-scala-45-min-presentation
- 761 :デフォルトの名無しさん:2009/03/05(木) 17:12:16
- >>757
最近見かけたのは、 scala と clojureの共通点は java VM上の言語だってことだが
それだけじゃなくて、並列処理のことが念頭にあるみたいなのね。だからその並列処理
の考えかたの違いもあって、どっちが。。。みたいなことが話題として出てきてる。
だから、無縁だと考えるのは視点の違いから来てるね。悪いけど>>757は視野が狭いとしか
思えないね。言語の系統を語ってるだけなら無縁だからね。だから、言ってることはもっと
もなことを言ってるし、そこでライバル関係だとは誰も言わないだろう。
もっとも、たまたま、>>737で話題になって>>752で答えたにすぎないし、
対立を煽ったり、>>752や>>757にあるように、他の言語をどこか馬鹿にするようなことも
言う気はないよ。
- 762 :デフォルトの名無しさん:2009/03/05(木) 17:17:59
- >>761
>>752じゃなくて>>753だね。
おまけとして、
http://japan.internet.com/column/developer/20090224/26.html
でもみればいいよ。
- 763 :デフォルトの名無しさん:2009/03/05(木) 20:26:57
- > あるみたいなのね
こういうの勘弁
- 764 :デフォルトの名無しさん:2009/03/05(木) 23:00:48
- マギー司郎の声でよめば大丈夫だ
- 765 :デフォルトの名無しさん:2009/03/06(金) 22:53:35
-
ScalaはJava互換あるし、第一言語がJavaで、
Haskellもちょっとだけかじった俺なら余裕だろと思ったら、
Listのインスタンス化に2時間ハマったぞWWWWWWWW
ArrayListをnewしようとちょっとずつ構文変えて頑張ってた健気な俺涙目WWWWWWWWW
ていうか巷のブログ書いてるやつら、動くコード書いてくれよWWWW
断片だけじゃわからないからWWWWWWWWW
コンパイルする身にもなれってのWWWWWWWWWWWWWW
- 766 :デフォルトの名無しさん:2009/03/07(土) 10:41:55
- マニュアル嫁
- 767 :デフォルトの名無しさん:2009/03/07(土) 11:25:33
- Haskellかじったらリストのインスタンス化思い当たるんじゃん
- 768 :デフォルトの名無しさん:2009/03/07(土) 12:09:38
- >>765
ScalaByExample和訳
ttp://www29.atwiki.jp/tmiya/pages/23.html
- 769 :デフォルトの名無しさん:2009/03/07(土) 18:28:12
- リストのインスタンス化で2時間悩むとか、プログラム初心者ならともかく、どうかしてるだろ
Scala Listでぐぐって出てくる最初のページにすら、やり方出てくるぞ。
- 770 :デフォルトの名無しさん:2009/03/07(土) 19:07:59
- こういうのを書きたかったんだ
List<File> list = new ArrayList<File>();
で、ググってでてくるのかね?
- 771 :デフォルトの名無しさん:2009/03/07(土) 20:28:23
- ああ、すまん。Javaの方のListを作りたかったわけね。それなら、Listでぐぐっても
出てこないわ(それだと、ScalaのListが出てくるし)。調べるべきは、Listの作り方じゃなくて、
ScalaでのGenericsの使い方の方だったね。Scala Genericsでぐぐれば、色々出てくる。
var list = new ArrayList[File]
- 772 :デフォルトの名無しさん:2009/03/08(日) 11:33:00
- コレクションは特別な理由がない限りScalaライブラリのを使ったほうがいいとおもうけどなあ。
187 KB
[ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
取りに行ったけどなかった。次は一時間後に取りに行くです。新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)