5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

プログラミング言語 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
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)