プログラミング言語 Scala 3冊目
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2009/12/26(土) 07:24:16ttp://www.scala-lang.org/
リンク集
ttp://sites.google.com/site/scalatohoku/%E5%8B%89%E5%BC%B7%E4%BC%9A%E8%B3%87%E6%96%99
前スレ
プログラミング言語 Scala 2冊目
http://pc12.2ch.net/test/read.cgi/tech/1246289771/
0002デフォルトの名無しさん
2009/12/26(土) 07:25:26Scalaは簡潔かつ優雅で型安全な方法でよくあるプログラミングパターンを表現できるように
設計された汎用プログラミング言語です。
Scalaはオブジェクト指向と関数型言語の特徴をスムーズに統合しておりJavaやその他の言語を扱う
プログラマをより生産的にすることができます。(以下略)
ttp://www.scala-lang.org/node/25
・Scalaに関する書籍(英語)
ttp://www.scala-lang.org/node/959
リファレンスマニュアルや草稿のPDFなども充実しているのでそちらも参照してください。
日本語の資料には、チュートリアルの訳やIBM dW、IT Proの連載記事、各々で開かれた勉強会の資料などがあります。
0003デフォルトの名無しさん
2009/12/26(土) 08:29:350004デフォルトの名無しさん
2009/12/26(土) 09:31:540005デフォルトの名無しさん
2009/12/26(土) 10:00:530006デフォルトの名無しさん
2009/12/26(土) 10:43:350007デフォルトの名無しさん
2009/12/26(土) 10:47:010008934
2009/12/26(土) 18:06:262.8.0を入れないと駄目なんですね。
http://d.hatena.ne.jp/lopes_nb/20091222/1261487236
0009デフォルトの名無しさん
2009/12/26(土) 18:40:190010デフォルトの名無しさん
2009/12/26(土) 19:02:29>>4
0011デフォルトの名無しさん
2009/12/26(土) 21:03:00Nightly Builds distributions (Scala 2.8.0のリリースまではここからダウンロード)
http://www.scala-lang.org/node/212/distributions
Scala2.8.0 latest (Scala 2.8.0最新ビルド)
http://www.scala-lang.org/archives/downloads/distrib/files/nightly/distributions/scala-2.8.0.latest.zip
Scala Plugins for NetBeans
http://wiki.netbeans.org/Scala
Install with NetBeans 6.8 (Scala 2.8 + Scala plugins v1.1インストール方法)
http://wiki.netbeans.org/Scala68v1#Install_with_NetBeans_6.8
nb-scala (NetBeans用Scala plugins V1.1ダウンロード)
http://sourceforge.net/projects/erlybird/files/nb-scala/
Scala plugins 6.8v1.1.0rc1 (現時点の最新版)
http://sourceforge.net/projects/erlybird/files/nb-scala/6.8v1.1.0rc1/nb-scala-6.8v1.1.0rc1.zip/download
0012デフォルトの名無しさん
2009/12/27(日) 15:27:01Scala 2.8じゃないと駄目なの?
0013デフォルトの名無しさん
2009/12/27(日) 16:08:04>>11
0014デフォルトの名無しさん
2009/12/27(日) 21:34:14eclipseのやつはかなり補完してくれるけど、たまに変なエラー吐くし
0015デフォルトの名無しさん
2009/12/27(日) 23:59:41implicit conversionとかもちゃんと見て補完候補出してくれるし
ただ、eclipseのscalaプラグインは不安定で、お勧めできないのがな…
2.8.0ではeclipseのプラグインが安定して欲しいものだが。
0016デフォルトの名無しさん
2009/12/28(月) 01:26:430017デフォルトの名無しさん
2009/12/30(水) 00:45:40お、まじ?
implicit conversion でも補完してくれるのは大きいなぁ。
IntelliJは悪くはないんだけど、型推論が入っている個所とかは補完効かないんだよね・・・
あと、import文の整理がいまいち。
0018デフォルトの名無しさん
2009/12/30(水) 13:11:06まじまじ。低能パワーをなめんなよ…
0019デフォルトの名無しさん
2010/01/02(土) 18:05:13ビジネス臭くて近寄りにくいんですけど。
0020デフォルトの名無しさん
2010/01/02(土) 18:08:410021デフォルトの名無しさん
2010/01/02(土) 18:13:08実際にビジネス臭いかどうかは知らないけど、
地球の絵が描いてあるWEBページはビジネス臭く感じるということが言いたかっただけ。
深い意味はない。
0022デフォルトの名無しさん
2010/01/02(土) 21:00:33ビジネス臭いというかなんか一気に胡散臭くなるよね
半年くらい前に今のページデザインに変わったんだけど、初めて見たとき
あまりに胡散臭くて噴いたもん
0023デフォルトの名無しさん
2010/01/06(水) 21:05:31struts1.XのLookupDispatchActionみたいなものだと思っておけばいいのか?
0024デフォルトの名無しさん
2010/01/07(木) 01:27:380025デフォルトの名無しさん
2010/01/07(木) 02:45:490026デフォルトの名無しさん
2010/01/08(金) 20:48:260027デフォルトの名無しさん
2010/01/08(金) 20:59:582月になればまた伸びるよ。
0028デフォルトの名無しさん
2010/01/10(日) 11:27:100029デフォルトの名無しさん
2010/01/10(日) 17:09:01勝手に終わらせないでくれ。
0030デフォルトの名無しさん
2010/01/14(木) 00:25:05座標位置としてタプルを使うのは変?
0031デフォルトの名無しさん
2010/01/14(木) 00:38:43手を抜いていい場面なら、タプル使ったほうが楽だね。
0032デフォルトの名無しさん
2010/01/14(木) 01:05:16元の質問者じゃないけど、ケースクラス使えってこと?
0033デフォルトの名無しさん
2010/01/14(木) 03:39:58case class Point(x: Int, y: Int)
とかデータ定義した方がいいだろうね。
0034デフォルトの名無しさん
2010/01/14(木) 05:08:42それをMapのキーにして扱いたいんだけど、
Point p1 = new Point(100, 100);
Point p2 = new Point(100, 100);
これは値がいっしょでもインスタンスが異なるから別のキーとして認識しちゃう(Javaなら)
ScalaだとPointクラスをどう定義すれば(書けば)いいですか
0035y34
2010/01/14(木) 05:38:20public class Point {
private int x、y = 0;
public Point(int x, int y) {
thisx. = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
@Override
public boolean equals(Object obj) {
boolean result = false;
if (obj instanceof Point) {
Point p = (Point) obj;
if ((this.getX() == p.getX()) && (this.getY() == p.getY())) {
result = true;
}
}
return result;
}
@Override
public int hashCode() {
int hash = 3;
hash = 47 * hash + this.x;
hash = 47 * hash + this.y;
return hash;
}
}
0036デフォルトの名無しさん
2010/01/14(木) 09:56:16質問する前にまず試してみたら?と言いたくなるが、
ケースクラスはequalsメソッドも自動的に書き変わるから問題ない
0037デフォルトの名無しさん
2010/01/15(金) 19:12:07一言余計
0038デフォルトの名無しさん
2010/01/15(金) 22:57:50goに流れたの?
0039デフォルトの名無しさん
2010/01/15(金) 23:01:03それにネイティブだし。
0040デフォルトの名無しさん
2010/01/16(土) 00:13:230041デフォルトの名無しさん
2010/01/17(日) 00:11:57・Scala in Action
by Nilanjan Raychaudhuri
・Scala in Depth
by Jsshua D. Suereth
一年後ぐらい?
0042デフォルトの名無しさん
2010/01/17(日) 04:27:050043デフォルトの名無しさん
2010/01/17(日) 09:06:100044デフォルトの名無しさん
2010/01/17(日) 10:13:17Javaのフレームワーク使うって手もあるんだろうけど
0045デフォルトの名無しさん
2010/01/17(日) 14:11:020046デフォルトの名無しさん
2010/01/17(日) 14:19:09ゆっくりと浸透し続けて言ってるからなあ
0047デフォルトの名無しさん
2010/01/17(日) 14:20:26本当に将来は何が起きるかわからんよ
0048デフォルトの名無しさん
2010/01/17(日) 17:18:420049デフォルトの名無しさん
2010/01/17(日) 17:33:54世の中何があるか本当に分からない
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
0050デフォルトの名無しさん
2010/01/17(日) 17:43:350051デフォルトの名無しさん
2010/01/17(日) 20:50:12Googleが買収したEtherPadが実はScala(だけじゃないけど)で
書かれてたりとか、foursquare.comがScala + Liftで書かれてるとか
地味にだが採用事例は増えて来てる。爆発的に流行しなくていいけど
着実に実績積み上げて行って欲しいな
0052デフォルトの名無しさん
2010/01/17(日) 20:51:07一応生きてはいるみたい。ひょっとしたら、今年は何かアップデートが
あるかもね。
0053デフォルトの名無しさん
2010/01/17(日) 23:27:55IntelliJ IDEA
Community EditionのScalaプラグインすげえええええ!!!
EclipseとかNetbeansのプラグインがウンコだったが
IDEAのプラグインはマジで普通に完成されてるじゃん!
Scalaが俺の中で株を一気に上げまくった
0054デフォルトの名無しさん
2010/01/18(月) 16:02:18君の言葉遣いにはウンコがついてるよ
0055デフォルトの名無しさん
2010/01/21(木) 05:41:20前スレでコレクションの関数が返す型がわからんとか
心配されてたけどちゃんと考えられてるのね
0056デフォルトの名無しさん
2010/01/24(日) 15:58:11とりあえず>>11のnightly buildから最新版を落としてパスは通したのですが、
どうも実行する実体がスクリプトでcygwin/linuxなど環境によって実行ファイルを替えているためか、
apt-getで入れたものと比べ若干起動が遅くなってしまいました。(起動時に一拍置く感じ)
できればaptで入れられればありがたいのですが、scalaのnightly buildでaptパッケージのものとかないんでしょうか?
あるいはsubversionリポジトリから自分でコンパイルすればできますか?
005756
2010/01/24(日) 16:02:54sin% /usr/bin/time -p scala -version
Scala code runner version 2.8.0.r20638-b20100123020158 -- Copyright 2002-2010, LAMP/EPFL
real 0.61
user 0.50
sys 0.06
sin% /usr/bin/time -p /usr/bin/scala -version
Scala code runner version 2.7.5final -- (c) 2002-2008 LAMP/EPFL
real 0.18
user 0.10
sys 0.02
この程度の差であれば、普通にコンパイルする分には気にならないもんでしょうか。
0058デフォルトの名無しさん
2010/01/28(木) 10:50:000059デフォルトの名無しさん
2010/01/28(木) 11:50:550060デフォルトの名無しさん
2010/01/28(木) 11:59:09どうだろうね。そのような予定自体は特に無いみたいだが。
一般論としては、そもそもScalaみたいな型システム上でHaskellとかML並の型推論を
やるのは原理的に難しい。ローカルなメソッドに限定すれば、呼び出し側の情報も
使って推論するとかまだやりようはあるだろうけど。
0061デフォルトの名無しさん
2010/01/28(木) 12:37:12どうもです。型推論は素晴らしいんだけど、推論してくれるところとしてくれないところが
はっきりしないのがどうも気持ち悪いんです。全部推論してくれる奇跡起きないかな
0062デフォルトの名無しさん
2010/01/28(木) 13:55:03Scalaのような型システムで完全な型推論をするのは確か決定不能だったと思うので
どうにか制限を加えないと残念ながら、無理かと。
0063デフォルトの名無しさん
2010/01/28(木) 13:59:31そうなんですか。おもしろいですね。>決定不能
でもScalaは好きなんで、今後も期待してます。
0064デフォルトの名無しさん
2010/01/30(土) 02:19:530065デフォルトの名無しさん
2010/01/30(土) 03:14:470066デフォルトの名無しさん
2010/01/30(土) 10:55:09え?なんでですか?
0067デフォルトの名無しさん
2010/01/30(土) 12:30:15http://www.scala-lang.org/scala-eclipse-plugin-beta-preview
0068デフォルトの名無しさん
2010/02/04(木) 22:37:29だと
0069デフォルトの名無しさん
2010/02/05(金) 11:15:19絶対処理のどっかにO(N^2)以上の繰り返しが入ってる気がする。
0070デフォルトの名無しさん
2010/02/05(金) 23:41:52http://www.infoq.com/jp/news/2010/02/scala-beta1
0071デフォルトの名無しさん
2010/02/07(日) 13:42:130072デフォルトの名無しさん
2010/02/07(日) 20:41:122.8.0の起動たしかに重いね
scalac(コンパイル)も重いけど、こっちはfsc使えば気にならないかな。
あとは、別件だけど、
Windowsでコンソールで使う時は、Server VM使うように、
JRE単体ではなくServer VMを持ってるJDK側のJREを使ってる。
(64bitだとClient VMがなく、Server VMしかないらしいが)
各BATのデフォルトが _JAVA_OPTS=-Xmx256M -Xms32Mなので、
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_18\jre
set JAVA_OPTS=-server -Xmx256M -Xms32M
を設定して使ってる。
ただし、JDKのバージョンあげた時に、変更するのはめんどくさい。
0073デフォルトの名無しさん
2010/02/07(日) 21:11:13ソース ttp://d.hatena.ne.jp/ryugate/20080417
C2D 1.2GHz 2GB Vista 32bit
Scala 2.8.0.r18207-b20090705020223 (Java HotSpot(TM) Client VM, Java 1.6.0_18).
JAVA_OPTS="-Xmx256M -Xms32M"
real 21.538s (user 0.153s sys 0.432s)
JAVA_OPTS="-Xmx256M -Xms32M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=25 -XX:GCPauseIntervalMillis=100"
real 24.090s (user 0.076s sys 0.430s)
Scala 2.8.0.r18207-b20090705020223 (Java HotSpot(TM) Server VM, Java 1.6.0_18).
JAVA_OPTS="-server -Xmx256M -Xms32M"
real 15.076s (user 0.076s sys 0.401s)
JAVA_OPTS="-server -Xmx256M -Xms32M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=25 -XX:GCPauseIntervalMillis=100"
real 22.017s (user 0.122s sys 0.401s)
0074デフォルトの名無しさん
2010/02/09(火) 00:39:25この提案、FANTOM(Fan)の作者が指摘した内容そのままなのかw
Lex Spoonとかコメント書き込んでるんだw
■Fan vs Scala: Different Trade-offs ( http://fantom.org/sidewalk/topic/675 )
> 『Slot Reflection』
> One of major design decisions Fan made a long time ago was to disallow method overloading.
> Method overloading is the kiss of death for easy reflection and meta-programming. In Fan any
> slot can be identified with the qualified name pod::Type.slot. Slot literals are built into the language:
> m := List#join // same as Slot.findMethod("sys::List.join")
> Languages like Java or Scala which support method overloading require the parameter types in
> order to perform method reflection. Identifying methods strictly by name is also a key enabler
> for efficient dynamic dispatch. This is a trade-off Fan and Scala have made differently - Fan
> took away a Java feature in order to simplify reflection and dynamic dispatch.
0075デフォルトの名無しさん
2010/02/11(木) 06:38:46リフレクションの簡易記法を入れようってこと?
フレームワークとかDSL作ってる人にはうれしいのかな。
自分はリフレクション使ったことないからなぁ
0076デフォルトの名無しさん
2010/02/11(木) 19:09:36リスト中に1つでも true があれば true を返すって問題を解くときに
下記の1つめがダメなのはなぜですか?
バージョン 2.7.7.final です
scala> List(false, false, false).exists(_)
res0: ((Boolean) => Boolean) => Boolean = <function>
scala> List(false, false, false).exists(_ == true)
res1: Boolean = false
scala> List(false, false, false).exists(e => e)
res2: Boolean = false
scala> List(false, false, false).exists(!_)
res3: Boolean = true
0077デフォルトの名無しさん
2010/02/11(木) 19:44:30関数の部分適用になってるから
Scala は _ を使い回ししすぎな観もある
まあ、大体わかるんだけど
0078デフォルトの名無しさん
2010/02/11(木) 22:01:100079デフォルトの名無しさん
2010/02/12(金) 03:47:390081デフォルトの名無しさん
2010/02/12(金) 16:02:48ビジネス向けシステム開発とかにも多く利用されるようになりそう。
0082デフォルトの名無しさん
2010/02/12(金) 23:23:36そこは注意しないと駄目だけど
0083デフォルトの名無しさん
2010/02/13(土) 04:02:22> "text" eq "text"
Boolean = true
eqってStringにないからRichStringに変換されて比較されると思うので
別のインスタンスだとfalseになると思ったんだが、違うのかな
RichStringを返すreverseメソッドを使って比較すると、こっちはfalseになる
> "text".reverse eq "text".reverse
Boolean = false
0084デフォルトの名無しさん
2010/02/13(土) 04:16:35Javaでいう、参照型を==で比較してるのと同じ
つまり、指すインスタンスの同一性を比較していることになる
その例だと、同一内容のリテラルだからキャッシュされてるんだろね
0085デフォルトの名無しさん
2010/02/13(土) 13:22:480086デフォルトの名無しさん
2010/02/13(土) 19:15:080087デフォルトの名無しさん
2010/02/13(土) 19:58:33いろいろいじってたらなんとなくわかってきた。
class Str
class RichStr(val self:Str) {
def eq2(rs:RichStr) = this eq rs
def eq3(rs:RichStr) = self eq rs.self
}
implicit def str2richstr(str:Str) = new RichStr(str)
val str = new Str
str eq2 str // false
str eq3 str // true
自分はこのeq2のようなのではと思ってたけど
実際にはeq3のような処理になってるのかな
0088デフォルトの名無しさん
2010/02/13(土) 21:57:16いや、そんなややこしい話ではなくて、StringのスーパークラスであるところのAnyRef
にeqメソッドがあって、これはJavaの==と同様に参照の等価性を判定してるってだけの
ことであって、implicit conversionは関係無い。Javaで"text" == "text"と書いたのと同じ。
0089デフォルトの名無しさん
2010/02/13(土) 23:20:13もしかしてJavaの(プリミティブ型以外の)クラスはAnyRefのサブクラス扱い?
0090デフォルトの名無しさん
2010/02/14(日) 01:40:04もしかしても何も、AnyRefはObjectの別名。
0091デフォルトの名無しさん
2010/02/14(日) 06:56:59thx!
コンパイル後はJavaのObjectとして扱われる、とはなんとなく思ってたけど
言語的には別物だと勘違いしてたわ
0092デフォルトの名無しさん
2010/02/15(月) 18:31:300093デフォルトの名無しさん
2010/02/15(月) 23:40:11全く同じ形では書けないな。あえてやるなら、
for(x <-m; _ <- expr) ...
とかするしかない。
0094デフォルトの名無しさん
2010/02/16(火) 10:28:46x = do { x <- m; expr }
みたいに使いたいんだ。やっぱりScalaでは実現不可能?
0095デフォルトの名無しさん
2010/02/16(火) 12:13:04exprがreturn expr2の形なら、for(x <- m) yield expr2で書けるけど、それ以外の場合は
forだとちょっとやりづらいかなー。ちょっと見た目が変わるけど、等価な形式なら
val x = for(x <- m; y <- expr) yield y
とか。それ以外だと、
flatMap(要はHaskellの>>=)直書きするしか。
val x = m.flatMap{x => expr}
0096デフォルトの名無しさん
2010/02/16(火) 12:15:10自己レス。等価というのはforの中で副作用が無い場合の話ね。forの中で副作用があった場合、
上の書き換えは等価じゃなくなるので。
0097デフォルトの名無しさん
2010/02/16(火) 12:43:46x = do { x <- m; expr }
↓
val x = for(x <- m; y <- expr) yield y
の書き換えでこれからモナドります。
0098デフォルトの名無しさん
2010/02/16(火) 21:44:01現時点でどれくらい実用になるんだろうか。
MatlabとかScilabとかって、手続き型言語なんで、やってられんので、
Scalalabにはがんばって欲しいなあ。
0099デフォルトの名無しさん
2010/02/16(火) 22:07:31科学技術計算は専門じゃないしそれほど興味も無いけど
内部実装がどんな感じなのかには興味あるな。
0100デフォルトの名無しさん
2010/02/19(金) 08:12:21GroovyからREPLを移し作ってるのか。
jLabのほうは速度の記述ないけど、scalalabは、その部分で速度稼げてるのか
> It is the basic scripting engine. Its scripting code is extremely fast,
> close to Java, and about 20-40 times faster from equivalent Matlab .m scripts!
0101デフォルトの名無しさん
2010/02/19(金) 23:08:050102デフォルトの名無しさん
2010/02/20(土) 01:07:05分散処理のspawnとか
Web Frameworkもろもろとか
Apache CamelとかScala自身で、DSLとか
分散オブジェクトキャッシュ?KVS?のGoat Rodeoとか
なにをどう使えばいいのかようわからん。
0103デフォルトの名無しさん
2010/02/20(土) 01:39:54ttp://github.com/robey
KVSサーバー側は、Scalaじゃなくても高スループットで可用性上がっている
国産のを使えばいいような気がするが・・・って、kestrelはqueueなのか
0104デフォルトの名無しさん
2010/02/20(土) 12:18:29みてないけど。
0105デフォルトの名無しさん
2010/02/21(日) 02:45:20Steps in Scala: An Introduction to Object-Functional Programming
これか? 2010.9月発売だけど。
Pro Scala: Monadic Design Patterns for the Web Gregory Meredith (ペーパーバック - 2010/4/25)
それとも、こっち?
0106デフォルトの名無しさん
2010/02/21(日) 11:39:43やさしいScala入門
http://www.cutt.co.jp/book/978-4-87783-238-4.html
0107デフォルトの名無しさん
2010/02/21(日) 11:48:30Amazonにはないみたいだけど、なんかあやしい感じだな
目次がJavaの入門書と区別つかないし
どう見ても地雷本
0108デフォルトの名無しさん
2010/02/21(日) 14:26:590109デフォルトの名無しさん
2010/02/21(日) 15:07:360110デフォルトの名無しさん
2010/02/21(日) 16:43:450111デフォルトの名無しさん
2010/02/21(日) 18:23:180112デフォルトの名無しさん
2010/02/22(月) 00:54:46> やさしいScala入門
> http://www.cutt.co.jp/book/978-4-87783-238-4.html
初心者向けの本が出て、ユーザーが増えるのは、喜ばしいことじゃないかな。
あと、初心者向けの本は、一気に速読できるので、上級者が速習するのにも使えるし。
でも、この出版社の本って、紙質が厚めなので、ページ数の割りに厚くて重い本になる。
だから買う気にならない。
文庫本サイズで出してくれれば、電車の中で読む用に買っても良いのだが。。
0113デフォルトの名無しさん
2010/02/22(月) 01:38:31「Javaの方が簡単じゃん?関数って意味わかんねw」って思われるだけじゃね?
0114デフォルトの名無しさん
2010/02/22(月) 08:25:09>「Javaの方が簡単じゃん?関数って意味わかんねw」って思われるだけじゃね?
それはありえない。
なぜなら「やさしいScala入門」を手に取る人は、おそらくJavaも知らない人だろうから。w
もっと売れる本を作れば良いのにねえ。あそこの出版社は。
厚くて重い割に、中身がソースでページが割かれていて内容ないので、買う気にならない。
レイアウトとサイズを考慮して欲しい。文庫本大くらいだったら、買ってやるのに。
>この本でユーザーが増えるのか?
この本では増えないだろうね。
でも、最近、初心者向けScalaの本が増えてるので、人気高まるかも。
こちらは3月発売予定のだけど、、、どうだろうか?
↓
初めてのScalaプログラミング
DavidPollak/著
出版社名:日経BP出版センター
発売予定日:2010年3月19日
0116デフォルトの名無しさん
2010/02/22(月) 09:21:530117デフォルトの名無しさん
2010/02/22(月) 09:42:26>『やさしいScala入門』はひどい本である。
>関数型プログラミングについてほとんど触れられていない
>Scalaの特徴的な機能があまり紹介されていない
>基本的な事実誤認や珍妙な解説が散見される
http://d.hatena.ne.jp/kmizushima/20100222/1266771623
0118デフォルトの名無しさん
2010/02/22(月) 11:14:37誰かと思ったら日向俊二か…
この人と矢沢久雄は著者名だけで機械的に選択肢から外していいよ。
0119pom
2010/02/22(月) 11:26:460120デフォルトの名無しさん
2010/02/22(月) 11:39:180121pom
2010/02/22(月) 12:51:14先程の書込み、句読点変ですまん。
(まぁ、妙な本を出版するよりは・・・)
0122デフォルトの名無しさん
2010/02/22(月) 13:12:06個人的にはOderskyの本さえあれば十分じゃないかと思うけどね。
0123デフォルトの名無しさん
2010/02/22(月) 17:31:10>初めてのScalaプログラミング
>DavidPollak/著
>出版社名:日経BP出版センター
>発売予定日:2010年3月19日
たぶんBeginnin Scalaの翻訳版だと思う。著者のDavid Pollakさんは
Liftの作者だから内容に関しては信頼して良いだろう(訳がよっぽどおかしくなければ)。
0124デフォルトの名無しさん
2010/02/22(月) 18:08:40魚拓とっといてもいいレベル
0125デフォルトの名無しさん
2010/02/22(月) 23:20:320126デフォルトの名無しさん
2010/02/23(火) 08:16:01日向ってまともにプログラム書いたことなんてないんだろうな…
駄本書くために自分がわかる範囲でちょこっといじる程度なんだろうよ。
0127デフォルトの名無しさん
2010/02/23(火) 09:40:10今、日本で望まれているのは、もっと応用的な本かと思われ。
Liftつかって、こういうの作れます、、みたいなの。
それとも、scala逆引き辞典みたいなのか。
scala使うことを生かせる応用分野って何かあるかなあ?
>126
日向の最近の本でいうと、
「やさしいコンパイラの作り方」
「やさしいインタプリタの作り方」
の本を買っちゃったよ。
紙面の大半が、氏のオリジナル言語を実現するコンパイラのソースで、
まあ、それを読む価値はあるといえばある(他のコンパイラ本は理論的過ぎて難しいので)けど、
説明の方はイマイチな気がする。
要するに買ったけどまだ読んでいない。w
0128デフォルトの名無しさん
2010/02/23(火) 09:44:46最近気付いた。
でも、Scalaの場合は、どうかなあ? まだ、Scala良く分かってない。
だれか、「Scalaで学ぶアルゴリズム」みたいなの、書いてくれないかなあ。
0129デフォルトの名無しさん
2010/02/23(火) 09:54:56「知らないと恥をかくプログラミングの常識」の
コメントが自作自演を指摘しています。
http://www.amazon.co.jp/review/R25Y5JQNH33VC4/
0130デフォルトの名無しさん
2010/02/23(火) 10:20:09Odersky本にケチをつけて自分の本に誘導してたのか
まあ、間に受けるやつなんて誰もいないだろうけど
著者もひどいが、こんなやつに書かせている出版社も問題だな
0131デフォルトの名無しさん
2010/02/23(火) 11:04:57コードの変数名にxsとかysとかよくでてくるけどなんの略なの?
0132デフォルトの名無しさん
2010/02/23(火) 11:19:56本は見てないけど複数形じゃね?
0133デフォルトの名無しさん
2010/02/23(火) 12:10:35リストのリストとかにはxssとかも使われてますな
0134デフォルトの名無しさん
2010/02/23(火) 17:28:450135デフォルトの名無しさん
2010/02/23(火) 17:39:53ユニフィケーションで [X|Xs] と書く
Haskellのパターンマッチングだと (x:xs)
だから複数形でよくね?
0136デフォルトの名無しさん
2010/02/23(火) 19:15:36map += (("b",2))
だといけて
map += ("b",2)
ではいけないのはなぜなの?
0137デフォルトの名無しさん
2010/02/23(火) 19:47:28ちなみに、
map += ("b" -> 2)
だとOKなんだね
「->」と「,」って等価ではないのか
0138デフォルトの名無しさん
2010/02/23(火) 19:58:24def +=(t:Tuple2[String,Int]) = {}
}
val hoge = new Hoge
hoge += ("b",2)
これだといけるみたいですねぇ…やっぱわかんなす
0139デフォルトの名無しさん
2010/02/23(火) 20:31:18map += ("b", 2)
の場合、("b", 2)という二つの引数を取るメソッド呼び出しであると
解釈されるから、だね。
>>137
基本的には同じだと考えて問題無いけど、
-> は単なる組み込みライブラリの*メソッド*に過ぎないのに対して、
(,)はタプルを作るための組み込み*構文*なせいで、上のケースのように
微妙に異なる解釈されちゃうケースが出てるってことだね。
Scalaだと、複数引数を取る関数とタプルを引数に取る関数が異なる扱いに
なってるので、その弊害とも言えるかも。
0140デフォルトの名無しさん
2010/02/23(火) 21:02:30なんでそれはよくて、mutableのMapだと駄目なんだろ
しかし、2.8のソースって読みづらすぎね?
関数型言語としてみると、標準ライブラリがこんなにごちゃごちゃしてるというのは問題だと思うんだけど
普通、言語を勉強するときって、標準ライブラリを読むもんでしょ
十分メジャーになって、本もたくさん出てるから、そっち読みなさいってことなのかなあ
0141デフォルトの名無しさん
2010/02/23(火) 21:10:10def +=(t:Tuple2[String,Int]) = {}
def +=(t:Tuple2[String,Int], t2:Tuple2[String,Int]) = {}
}
val hoge = new Hoge
hoge += ("b",2) //だめ
hoge += (("b",2)) //いい
なんかオーバーロードが関係してるっぽいことを発見
0142デフォルトの名無しさん
2010/02/23(火) 21:16:22ああ、それが原因だね
2.8のソースコードのGrowable.scalaに
def +=(elem1: A, elem2: A, elems: A*): this.type = this += elem1 += elem2 ++= elems
というのがある
2.7のソースだと同じところにあるのに
2.8だとMap → MapLike → Growableと継承されてんだよな
他にもMapLikeBaseとかあるしさ
オーバーロードメソッド見つけるのもしんどいわ
0143デフォルトの名無しさん
2010/02/23(火) 21:19:30hoge += ("b",2)はt:Tuple2[String,Int]の引数しかとらないことを知ってるから
hoge.+=(("b",2))に解釈してくれて(勝手にタプルにパックしてくれる?)
ある場合は
パックしてt:Tuple2[String,Int]をとるメソッドに渡していいのか
t:Tuple2[String,Int], t2:Tuple2[String,Int]の引数の型間違えなのかわからないってことですかね
0144デフォルトの名無しさん
2010/02/23(火) 21:30:460145デフォルトの名無しさん
2010/02/23(火) 22:00:40Scalaのメソッドは二項演算子化して括弧を省略できるよ
要するに型推論のアルゴリズムの問題でしょう
オーバーロードされてて括弧を省略されると、タプルと引数の区別ができないと
タプルは -> を使ったほうがいいね
hoge += "b" -> 2
これでいいわけだし
0146pom
2010/02/23(火) 23:13:36だね。
関係ないが、
scala> var map = Map{"a" -> 1; "b"->2}
map: scala.collection.immutable.Map[java.lang.String,Int] = Map(b -> 2)
scala> var map = Map("a" -> 1, "b"->2)
map: scala.collection.immutable.Map[java.lang.String,Int] = Map(a -> 1, b -> 2)
といったあたりも、
OCamlやらJavaScriptやら他言語のユーザーからすると微妙にストレスなのかな。
表記法は好みの問題も大きいところだろうけど、間違いの少ない表記が言語ユーザー間である程度確立
することは大事だね。
0147デフォルトの名無しさん
2010/02/24(水) 01:53:55おかげで、(a -> b) か Pair(a, b) でごまかす事を覚えたが。
0148デフォルトの名無しさん
2010/02/24(水) 02:13:50>>145
あー。オーバーロード絡みだったわけか。完全に勘違いしてた。メソッドオーバーローディング
はScalaみたいな複雑な型システムを持った言語と組み合わさるとかなり厄介だねえ。
0149デフォルトの名無しさん
2010/02/26(金) 22:16:50なんかC++の二の舞になりそうな勢いだね。
悪い意味で(´_`)
0150デフォルトの名無しさん
2010/02/26(金) 23:34:46習得が難しいわけではないと思う。いくつか落とし穴があるのは
事実だが、それほど大した問題ではない場合が多いし。
0151pom
2010/02/26(金) 23:49:19Scalaの言語仕様の大きさは、
C++に比肩されるようなものだと思う。
だけれど、Scalaでは
自分(そしてチーム)が面倒見切れる範囲でコードを
書いていけば、そこそこ高い生産性を出せると思う。
自分の指向としては、シンプルな言語を望むところがあるのだけれど、
Scalaに代わりうるほどの生産性を発揮出来そうな言語が
ないのが、ここ2年ほどメインの言語をScalaに切り替えて判明している事実。
>>150
その通りで、慣れれば、落とし穴にはまることは少ない。
全体としてはScalaは素晴らしく練り上げられているよ。
「理想の言語」かはさておき・・・
0152デフォルトの名無しさん
2010/02/27(土) 09:53:14http://netbeans.dzone.com/learn-scala-with-kojo
http://www.kogics.net/sf:kojo
0153デフォルトの名無しさん
2010/02/27(土) 12:19:59>シンプルな言語
つClojure
0154デフォルトの名無しさん
2010/02/27(土) 18:16:55Kojoはやけにロゴがしょぼいのがアレだけど、なかなかよくできている環境だと思う
入力補完にコマンドヒストリ、オブジェクトインスペクタ、タートルグラフィクスに関する
コマンドのUNDOなど機能は豊富だし、割と安定してる。
0155デフォルトの名無しさん
2010/03/01(月) 04:03:36良くある四則演算DSLとかではなく、変数宣言部があるようなやつが知りたい。どんな感じで作れば良いのか。
0156デフォルトの名無しさん
2010/03/01(月) 07:22:280157デフォルトの名無しさん
2010/03/01(月) 11:47:22変数宣言があっても基本は変わらないと思うよ。普通のパーザジェネレータ使って
オレオレ言語のパーザ書くのと本質的には同じ。また、変数宣言を持った言語の
パーザ書いたことが無いならパーザコンビネータかどうかというのは本質的な問題
じゃない。
0158デフォルトの名無しさん
2010/03/03(水) 23:01:460159デフォルトの名無しさん
2010/03/03(水) 23:20:550160デフォルトの名無しさん
2010/03/03(水) 23:52:17C++だとnullがありえる戻り値ならポインタを返すけど、それがScalaだとOptionになると。
Optionは便利な関数があるからnullのチェックのif文書くより楽チン
0161デフォルトの名無しさん
2010/03/04(木) 02:06:530162デフォルトの名無しさん
2010/03/04(木) 02:16:48nullチェックし忘れによる、ぬるぽを防ぐ
加えて、Listもどき(長さが0か1のリスト)と見なせる事により、for文やmapで便利
あと、パターンマッチ
でも、Option型使うより、その発展系のBox型の方がより便利で
いいとこが分かりやすい。
あ、Box型ってのは、Liftのライブラリね。
で、Liftの作者がBox型の布教文書を書いてたので、それを読むといい。
0163デフォルトの名無しさん
2010/03/06(土) 12:39:27ソース読んでみたらこんなんなってた。
def length = model.getSize
def iterator = new Iterator[A] {
var idx = 0
def next = { idx += 1; apply(idx-1) }
def hasNext = idx < length
}
Iteratorにlengthメソッドがあるのでそっちが使われちゃって、さらにその中でhasNextを呼んでるから無限ループになってるっぽい?
本家に報告するべきかなと思ったけど、注意書きに
「お前それほんとにバグかどうか確かめたの?お前の勘違いじゃないの?理解できてないだけじゃないの?死ぬの?
てめぇで判断つかないならMLで相談するなりしてからにしろよ^^;;;;」
って書かれてて心が折れたので誰かエロい人報告しといてくだしあ><
0164デフォルトの名無しさん
2010/03/06(土) 16:26:49Cloujerより需要があるのかなあ?
0165デフォルトの名無しさん
2010/03/07(日) 03:39:540166デフォルトの名無しさん
2010/03/08(月) 14:29:320167デフォルトの名無しさん
2010/03/09(火) 01:08:55注意書きに気にせず報告すると良いと思うよ。
がんばって。
0168デフォルトの名無しさん
2010/03/09(火) 02:20:56maven-scala-pluginを使っているのですが、
これって分割コンパイルする方法はないのでしょうか。
*.scala ファイルが25個で、1400行程ですが、
40秒近くかかっています。
mavenに限らずscala一般の話でもわかる方、
いましたらよろしくお願いします。
0169デフォルトの名無しさん
2010/03/09(火) 02:24:39追記です。
mvn scala:cc
は、やってみました。
レスポンス自体の改善にはならなかったです。
0170デフォルトの名無しさん
2010/03/09(火) 03:33:44maven-scala-plugin使ったこと無いけど、普通に考えて分割コンパイルされそうなもんだけど…
Liftも以前はmaven使ってたはずだけど、修正のたびに全部再コンパイルだったら使い物に
ならんかっただろうし。まあ、確実に修正差分だけコンパイルして欲しいならsbt(Simple Build Tool)
使うのが無難かなあ。sbtはコンパイラAPI叩いてファイル間の依存性解析とかしてるから、その辺は
割と正確。
0171デフォルトの名無しさん
2010/03/09(火) 05:01:40sbt 試してみました。
毎回コンパイラを起動しない設定だとかなりのスピードアップがあるようです。
(あわせて169の記述は取り下げます)
(1〜3回目というのは、ソースを1行だけ編集してコンパイルさせた結果の3回分です)
またsbtの効果は大ですが、この規模では真価は発揮できないようです。
mvn scala:compile
33s
sbt compile
17s
mvn scala:cc
28s (1回目)
7s (2回目)
5s (3回目)
sbt ~compile
19s (1回目)
8s (2回目)
4s (3回目)
0172デフォルトの名無しさん
2010/03/09(火) 05:35:56そんな遅さ。
0173デフォルトの名無しさん
2010/03/13(土) 04:20:23>>157
返答が遅くてすまんが、レスありがとう。
結局やりたいことはできますた。
結局、自分がパーサコンビネータの使い方が良く分かってなかっただけだった。良く分からないんで手っ取り早く参考となるものがみたかったと、こういうすんぽうです。
適当にいじくってたらだんだん理解してきてなんとかできた。
0174デフォルトの名無しさん
2010/03/13(土) 21:53:350175デフォルトの名無しさん
2010/03/13(土) 23:26:20見えてるので勘弁。clojureスレでやってくれ。
0176デフォルトの名無しさん
2010/03/13(土) 23:30:550177デフォルトの名無しさん
2010/03/14(日) 23:20:570178デフォルトの名無しさん
2010/03/15(月) 02:56:340179デフォルトの名無しさん
2010/03/16(火) 23:27:140180デフォルトの名無しさん
2010/03/17(水) 15:13:29ランタイムのサイズがつらくないか?
0181デフォルトの名無しさん
2010/03/17(水) 18:01:38ひょっとしたらそれでなんとかなるかもしれないけど、そこまでする価値があるかどうかだな。
0182デフォルトの名無しさん
2010/03/18(木) 01:59:39> Java使わずにScalaでiモードのアプリ作ったり出来ないだろうか
Androidは、Scalaでプログラムできるらしいぞ!
今どき、iモードなんて流行らないだろう。Androidで行こうぜ!
0183デフォルトの名無しさん
2010/03/18(木) 02:51:37そんなことはこのスレの住人なら誰でも知ってるわ。つか公式サイトに載ってることだろ。
大体、iアプリの質問に対してAndroidに話を換えてどうすんだよ。アホにもほどがある。
0184デフォルトの名無しさん
2010/03/18(木) 07:54:290185デフォルトの名無しさん
2010/03/19(金) 05:50:50def union(that: Seq[A]): Seq[A]
というメソッドが3つあったんだけど、おなじのが3つってどういうことだろ。
説明文は全部違うみたいだけど英語だからよくわからん。
0186デフォルトの名無しさん
2010/03/19(金) 18:04:19恐らく、新しいAPIドキュメントの生成器(scaladoc2)のバグだね
説明文をよく見るとわかるけど、最初の一つがintersect,その次がdiff,最後がunion
の説明になってる。MLかTracで報告してあげると良いのではないかと。
0187デフォルトの名無しさん
2010/03/19(金) 18:10:12その点に注意した方がいいと思う。なんか変な挙動があったらバグの可能性が高い。
0188デフォルトの名無しさん
2010/03/19(金) 18:12:070189デフォルトの名無しさん
2010/03/20(土) 03:29:24なるほど、バグか。
ScalaはJavaと比べて複雑だし、大変なんだろうな。
報告は・・・うん、ごめん、ムリぽ
英語ができるなら真っ先にあの検索の挙動について文句を(ry
0190デフォルトの名無しさん
2010/03/21(日) 22:34:01なんとかしてくれ
0191デフォルトの名無しさん
2010/03/22(月) 02:58:23とりあえずNetBeansをインストールしなおしてみれば?
0192デフォルトの名無しさん
2010/03/22(月) 06:01:16http://www.listware.net/201003/netbeans-platform-dev/67512.html
0193デフォルトの名無しさん
2010/03/22(月) 10:44:20ただ、プラグイン入れてもEmacsライクなSet Markが機能しない。。。
またEclipseに戻りそうだ。
0194デフォルトの名無しさん
2010/03/22(月) 23:18:14数年内にRubyとか淘汰すると思う
0195デフォルトの名無しさん
2010/03/22(月) 23:50:30Scalaいいよねぇ
Rubyのアホみたいにテスト工数が
ざっくり減るし。
ただ技術者なかなかいないよねぇ
0196デフォルトの名無しさん
2010/03/23(火) 21:22:300197デフォルトの名無しさん
2010/03/23(火) 21:56:000198デフォルトの名無しさん
2010/03/24(水) 23:35:27Scala言語を学ぶやさしいツール「Kojo」が無償公開
Publickey http://www.publickey1.jp/blog/10/scalakojo.html
0199デフォルトの名無しさん
2010/03/25(木) 00:14:10なぜこの関数は存在するのですか?
0200デフォルトの名無しさん
2010/03/25(木) 00:46:37理解しているけど使いどころがわからないってこと?
0201デフォルトの名無しさん
2010/03/25(木) 06:58:370202デフォルトの名無しさん
2010/03/27(土) 01:12:19Specsみたいな書き方のやり方なんだろうけど、
なにをやってるのかさっぱりわからん(;´Д`)
誰か解説プリーズ。
http://gist.github.com/344299
class Example(description: String) {
def in[T](expectations: =>T)(implicit def m: scala.reflect.Manifest[T]): Example = {
if (m.erasure == this.getClass)
hasSubExamples = true
// store expectations for later evaluation
}
}
/**
* This allow me to define in specs examples which know if they have nested examples
* without having to be evaluated
*/
"this example is simple" in { 1 must_== 1 }
"this example has a nested example but it doesn't have to be evaluated to know it!" in {
"I am nested" in { 1 must_== 1 }
}
0203デフォルトの名無しさん
2010/03/27(土) 05:27:10読んでみた。まず、このサンプルは、inの中にさらにネストしたテストがあるかどうかを
テストフレームワーク側で検知することができることを目的にしている。そのために、
implicit parameterとして渡されたscala.reflect.Manifest[T]からT型のクラスを表すClass
オブジェクトを取得して、this.getClass()、つまりExample classのClassオブジェクトと比較している。
もし、inに渡される引数の型=> Tが => Exampleだったら、ネストしたテストがあるということになり、
hasSubExamples = trueになる。そうでなければネストしたテストは無いということになる。
で、なんでscala.reflect.Manifestを使ってるのかだけど、これは、inに渡される引数の値がnullである場合
でも処理できるようにしているのではないかと思う。そうでなければ、単にexpectation.getClass = this.getClass
で比較すればいいだけだし。
0204デフォルトの名無しさん
2010/03/27(土) 08:15:34あと implicit def m: は implicit m: の間違い?
0205デフォルトの名無しさん
2010/03/27(土) 19:08:04あー、inがExampleを返すのはネストの判定のためなのか。
ネストならTがExampleになるのね。なるほどなぁ。
0208デフォルトの名無しさん
2010/04/02(金) 16:30:142回asInstanceOfやるしかないんですかね?
val a: AnyVal = 10L
a.asInstanceOf[Long].asInstanceOf[Int]
0209デフォルトの名無しさん
2010/04/02(金) 21:01:56val a: AnyRef = 10L.asInstanceOf[java.lang.Long]
a.asInstanceOf[Long].asInstanceOf[Int]
0210デフォルトの名無しさん
2010/04/05(月) 18:46:05val a: AnyRef = 10L.asInstanceOf[java.lang.Long]
a.asInstanceOf[Long].toInt
でOK
0211デフォルトの名無しさん
2010/04/05(月) 21:25:39処理系としてはどれくらい安定してる感じなの?
0212デフォルトの名無しさん
2010/04/06(火) 00:15:08何も知らずに言うが、処理系はJVMだから、Javaの10年以上の実績があって超安定。
だが、コンパイルが遅いのが難点ってところ。
コンパイラのバグは、致命的なのはないんじゃないの??
0213デフォルトの名無しさん
2010/04/06(火) 19:06:00なるほど。それならわりと使えそうな感じだね。
0214デフォルトの名無しさん
2010/04/06(火) 20:16:28こんなメソッド持ってるみたいなのはこんな感じで書けるみたいですが
def func[T <: {def hoge(s: String): Unit}](value: T, str: String) = {
value.hoge(str)
}
0215デフォルトの名無しさん
2010/04/07(水) 02:02:49直接的な方法は存在しない。2.7.Xで(実験的な機能として)入った
scala.reflect.Manifestを使えば次のような形で書くことが一応できる
import scala.reflect.Manifest
def fun[T](implicit m: Manifest[T]): T = m.erasure.newInstance.asInstanceOf[T]
fun[String] //String型のオブジェクトを生成
0216デフォルトの名無しさん
2010/04/08(木) 00:50:350217デフォルトの名無しさん
2010/04/08(木) 00:50:490218デフォルトの名無しさん
2010/04/10(土) 02:27:150219デフォルトの名無しさん
2010/04/13(火) 19:22:38http://days2010.scala-lang.org/program
どれ注目すればいいん?
Running in Browser?Data Parallel Programming?CCSTM?Automatic refactoring?
0220デフォルトの名無しさん
2010/04/15(木) 00:21:49ってどこまでが引数でどこまでが返り値でどこまでが
関数の実体なのでしょうか
0221136
2010/04/15(木) 13:15:050222デフォルトの名無しさん
2010/04/15(木) 13:15:130223デフォルトの名無しさん
2010/04/15(木) 16:58:57コップ本で1章使って概説してるよ
0224デフォルトの名無しさん
2010/04/15(木) 19:27:01ちょっと見たかんじだと、なんかあまり違いがないような
0225デフォルトの名無しさん
2010/04/17(土) 12:55:43メールでPhil Bagwellにグループの詳細を送ってくれ」
だって。
0226デフォルトの名無しさん
2010/04/17(土) 14:24:24・Scala 2.9 (late 2010)
parallel collections, more specialization, faster vector & hash tries
Dynamic type (?), Scala reflection (?), Scala IO (?), more libraries
・Scala 2.10 (2011)
Reactive programming, optional exception checking,
first parallel DSLs, Scala .NET, more libraries
・Scala 2.11/3.0? (2012-2015)
Optimizing parallel DSL framework, contracts (?),
generalized effect checking, type debugging
0227デフォルトの名無しさん
2010/04/17(土) 14:41:09Scala 3.0 could include:
unification of tuples + function args, better type inference, union types
Virtual classes still on the "research" roadmap, but has no owner
Multimethods: definitely a research project.
Unlikely to happen, unless someone implements it and nothing breaks.
あとScala Foundationを設立して企業からもサポートもらうよ、
次回のScalaDays2011はサンフランシスコでやるよ、とのこと。
0228デフォルトの名無しさん
2010/04/17(土) 14:49:09.NET版をまだ諦めてなかった事に驚いた。
あと、例外チェックも。
0229デフォルトの名無しさん
2010/04/17(土) 16:13:11.NETはMSが(VSの?)scalacモジュール出すらしい
0230デフォルトの名無しさん
2010/04/17(土) 19:59:01> .NETはMSが(VSの?)scalacモジュール出すらしい
Scala終了か?
MSがやると互換性の違うのがいっぱいできて、利用者側が混乱するんだよね。。
MSの作戦でやっているのだろうけど。
Java,Html, 他にも、MSが下手に乗り出すことで、進化が遅くなった言語がいろいろ。。
0231デフォルトの名無しさん
2010/04/17(土) 20:24:04わざと1980年代から意図的に同じ事くりかえして
自社の優位性を保とうとしているからなぁw
0232デフォルトの名無しさん
2010/04/17(土) 21:10:35似たケースとしてIronRubyを挙げるが、こっちは変な独自要素はないよ。
WPFなどの.NET API呼び出しが、独自要素だと言えばその通りだが、
それ言ったらJRubyやJythonのJava連携はどうなる、とかいった話になるし、
問題視している奴らはいないだろう。
というか、そんな余計なことに手を出す余裕がない。
ようやくRuby1.8準拠のIronRuby1.0がリリースできたところで、
次はRuby1.9準拠の1.1のリリースが待っている。
Scalaが、ブラウザや往時のJava並みの戦略的プラットフォームだとMSが判断したら、
大量の資金がつぎ込まれてMSの独自要素が作られるかもしれないが、
今の状況を見てそこまでScalaが流行ると思うなら、お前ら幸せすぎだろw
0233デフォルトの名無しさん
2010/04/17(土) 21:42:140234デフォルトの名無しさん
2010/04/17(土) 21:50:470235デフォルトの名無しさん
2010/04/17(土) 22:08:560236デフォルトの名無しさん
2010/04/17(土) 22:49:55同意見だなぁ
.netなんだし間口広げるだけだろうにな・・・
0237デフォルトの名無しさん
2010/04/17(土) 23:41:410238デフォルトの名無しさん
2010/04/18(日) 01:14:52それでもなお独自拡張を恐れるならともかく、古い情報に基づいての偏見はなぁ…
0239デフォルトの名無しさん
2010/04/18(日) 02:04:22悪いことはするなって事だよ
0240デフォルトの名無しさん
2010/04/18(日) 02:09:51結局、MS製品のある環境でしか動かないものしか作ってないからな。
建前は標準規格と言ってるが。
0241デフォルトの名無しさん
2010/04/18(日) 02:18:33標準規格にはこだわるにしても
0242デフォルトの名無しさん
2010/04/18(日) 02:31:03要は、ベンダーロックインされるリスクを負ってでも、その技術を使いたいかという話。
0243デフォルトの名無しさん
2010/04/18(日) 03:00:51MSの部分だけに反応するってことはscalaに興味ない人が荒らすためだけに巡回してるのかな・・
0244242
2010/04/18(日) 03:54:57歪んだ形の囲い込みを全く警戒しなくてもおk、というわけではないという当たり前の話。
0245デフォルトの名無しさん
2010/04/18(日) 03:58:32いやメジャーOSだとそんなことやってるのWindowsだけだよ…
0246デフォルトの名無しさん
2010/04/18(日) 09:29:46便利な技術ならOSSでコピッて本家に取り込まれるし、
使えない技術ならそもそも.NET版でも使われなくて、MSの優位性が無くなる。
JavaScriptのXHRなんか、ActiveXベースでMS独自実装の最たるものだが、
標準に取り込まれて、今じゃAjaxの最重要技術だ。
J++を念頭に言っているのなら、あれはSunが相手だからああいう裁判沙汰になっただけで、
もっと緩やかな相手なら、ああはならず、J/DirectやCOM連携が、
他の処理系への移植を考慮した形で取り込まれていたと思う。
実際、J++でやろうとしていたことの必要性は確かにあり、その後OSSベースで実装されている。
JNIが不便だからと言って作られたJNAはNetBeansが由来だし、
いくつかあるJava-COMブリッジとか、OSSで作られてるだろ?
0247デフォルトの名無しさん
2010/04/18(日) 10:10:09Win2000発売停止になったよな
じゃあScalaもきちんと監視しないと
改悪されるぞ
0248デフォルトの名無しさん
2010/04/18(日) 12:51:020249デフォルトの名無しさん
2010/04/18(日) 12:53:08> 便利な技術ならOSSでコピッて本家に取り込まれるし、
世の中には特許というものがあってだね。
0250デフォルトの名無しさん
2010/04/18(日) 16:19:28Ironなんちゃらシリーズだって.netでしか動かない仕様になるぜ
0251デフォルトの名無しさん
2010/04/18(日) 17:10:060252デフォルトの名無しさん
2010/04/20(火) 21:14:19>「Scala 2.8.0」がRC1に
>2010年04月16日 23:39
>プログラミング言語「Scala」の開発チームは4月14日、次期版「Scala 2.8.0」のリリース候補(RC)版を公開した
続きは、こちらでも、どこでも。。。
ttp://sourceforge.jp/magazine/10/04/16/1440244?from=rss
個人的には、Scala Swingライブラリに期待。
Visualな Swing開発環境が出てくれるとうれしいのだが。
0253デフォルトの名無しさん
2010/04/20(火) 21:30:32完結になるかどうかはSwingのAPI次第だからScala関係なくね?
NetBeansでもう完成形でいいじゃん
0254デフォルトの名無しさん
2010/04/20(火) 21:31:13○簡潔
0255デフォルトの名無しさん
2010/04/20(火) 22:25:250256デフォルトの名無しさん
2010/04/20(火) 22:30:510257デフォルトの名無しさん
2010/04/20(火) 22:39:050258デフォルトの名無しさん
2010/04/20(火) 23:03:16ScalaでFRPとかできるようにならんのかな。それとももうある?
0259デフォルトの名無しさん
2010/04/20(火) 23:26:07関数型言語=マルチコアに対応したプログラムができる
というのはScalaの場合当てはまりませんか?(もしくはRubyもそういうのを作れる?)
0260デフォルトの名無しさん
2010/04/21(水) 00:28:41もちろんRubyでも
0261デフォルトの名無しさん
2010/04/21(水) 02:18:40>>259
マルチコア対応が容易、って不変性がどうとかっていう部分じゃないんですかね。
ということは純粋関数型っぽく作れば良いと思うんですけど。
0262デフォルトの名無しさん
2010/04/21(水) 03:10:43JavaFXみたく宣言っぽく書ける
イベントハンドラが柔軟に書ける
ただ現状ラッパとしての完成度が低い
GUIは他の部分よりも恩恵を受けれないのはしょうがないね
特にラッパだと元ライブラリの制限を受けまくるし
ちょっとしたグラフのプロットとかをREPL上で
さくっと書けるのは楽しいよ
0263デフォルトの名無しさん
2010/04/21(水) 08:02:54これか
http://www.scala-tribes.org/p/tribes.html
0264デフォルトの名無しさん
2010/04/21(水) 09:33:01Haskellの場合純粋な部分と非純粋な部分を分けて書かざるを得ないけど、
そのお陰でコンパイラが普通のコードを自動的にマルチコア最適化するなんてこともできる(ようになる)らしい
Scalaの場合varとvalの使い分けはあるものの、Haskellよりは弱い最適化しかできないかと
0265デフォルトの名無しさん
2010/04/21(水) 12:44:25尼で目次見た限りでは地雷くさいんだが・・・
0266デフォルトの名無しさん
2010/04/21(水) 13:18:522.8RCで試しました
scala> val s1 = scala.collection.immutable.Stack(1,2,3)
s1: scala.collection.immutable.Stack[Int] = Stack(1, 2, 3)
scala> val s2 = scala.collection.mutable.Stack(1,2,3)
s2: scala.collection.mutable.Stack[Int] = Stack(3, 2, 1)
scala> s1 top
res35: Int = 1
scala> s2 top
res36: Int = 3
0267デフォルトの名無しさん
2010/04/21(水) 19:22:35Scalaスケーラブルプログラミング
http://www.amazon.co.jp/dp/4844327453
Scalaプログラミング入門
http://www.amazon.co.jp/dp/4822284239
両方買ってどちらも最後まで読んでないですけど。
『Scalaプログラミング入門』は言語仕様の説明がほとんどなくて
初っ端からScala特有の(=Javaの概念にはない)話が進んでいくので
実行環境のそばで読まないとさっぱり理解できない。
実行してもなんでそうなるのか分からないので応用きかない。
なので初めの1冊どっちを買うかと問われれば
間違いなく『Scalaスケーラブルプログラミング』。
Scala経験者が読んだらまた異なる感想になるかもしれませんが、
「入門」を冠する書籍としては問題あるんじゃないかなあ、と。
0268デフォルトの名無しさん
2010/04/21(水) 20:10:02それとも関数型言語と言うものを全く知らないと言うことか?
0269デフォルトの名無しさん
2010/04/21(水) 20:51:23> ちょっとしたグラフのプロットとかをREPL上で
> さくっと書けるのは楽しいよ
そういう用途では、Scalalab(ScalaSci ) に期待しているのだが、、、まだまだかなあ。。
0270デフォルトの名無しさん
2010/04/22(木) 06:26:03awtとかswingつかうの?
0271デフォルトの名無しさん
2010/04/23(金) 05:52:530272デフォルトの名無しさん
2010/04/23(金) 07:50:25どうせまた、なんにでも「入門」ってつけちゃう日本語書籍の悪いところだろ…
と思って原著のタイトル調べてみたら「Beginning Scala」でしたごめんなさい
0273デフォルトの名無しさん
2010/04/23(金) 22:25:35JavaはJavaで書かれているのか?
Javaを書いてるJavaはなにで書かれているんだ?
0274デフォルトの名無しさん
2010/04/23(金) 23:18:27だからあんな糞の役にも立たない糞プラグインなのか
IntelliJのScalaプラグインの方が遥かにいいわ
0275デフォルトの名無しさん
2010/04/23(金) 23:57:38EclipseはXMLを記述するとエラーになるんだよな。
0276デフォルトの名無しさん
2010/04/24(土) 00:00:49難しすぎて使えない
0277デフォルトの名無しさん
2010/04/24(土) 01:01:010278デフォルトの名無しさん
2010/04/24(土) 01:18:01やっぱEclipseかNetBeansになっちゃうな
0279デフォルトの名無しさん
2010/04/24(土) 03:48:35いつもreact+loopで良いような。
receive使うのはどんな時だろう。
0280デフォルトの名無しさん
2010/04/24(土) 04:25:14import swing._
def point = (util.Random.nextDouble -> util.Random.nextDouble)
def data = Stream.continually(point).take(1000).toList
new Frame {
contents = new BorderPanel {
preferredSize = new Dimension(300, 300)
def scale(d: Double) = (d * 300).toInt
override def paintComponent(g:Graphics2D) {
data.foreach(p => g.fillRect(scale(p._1), scale(p._2), 1, 1))
}
}
visible = true
}
0281デフォルトの名無しさん
2010/04/25(日) 11:30:17メソッド内でmutablueなMapでデータを作成、編集して、immutableにして返したいから、
メソッドの戻り値の型自体はMapで宣言しておき、最後にreadOnlyってメソッドよんで返すと、
type mismatch; found : scala.collection.Map required: Map
(scala.collection.Mapをかえしてるけど、このメソッドではMapを返すって宣言してるから型違うよ)
っておこられるんだが・・・
Predefの中で
type Map[A, +B] = collection.immutable.Map[A, B]
って宣言してて、collectionのMapってimmutableのMapのことだから結局おなじじゃないのか?
Predefと同じtypeの宣言をそのメソッドのクラス内に書けばエラーでないがこういうモノなのか?
なんだが微妙に冗長になって気にくわないんだが・・・
なんかいい方法あったら教えてくれ
そもそもScala2.8だと違うのか?
eclipseが悪いのか?
効率なんか考えないで最初からimmutableなMapで作成すればいいのか?
Listとかでも同じ問題がおきると思うんだが・・・
0282デフォルトの名無しさん
2010/04/25(日) 11:58:25別名importで解決できない?
0283デフォルトの名無しさん
2010/04/25(日) 12:14:29そうじゃない。scala.collection.Mapという型が
scala.collection.immutable.Mapという型と別に存在してて、コンパイラは
scala.collection.immutable.Mapが期待されてるのに、scala.collection.Mapが返されてると
文句言ってるわけだ(scala.collection.Mapはscala.collection.immutable.Mapとscala.collection.mutable.Map
の共通の親trait)。
で、なんでscala.collection.mutable.MapのreadOnlyがscala.collection.immutable.Mapじゃなくて
scala.collection.Mapを返すかというと、APIドキュメント
> Return a read-only projection of this map
に書かれてる通り、mutableなMapの「読み取り専用」なviewを返したいからだと思われ。
scala.collection.immutable.Mapだと「不変」Mapになっちゃうので。
ちなみに、2.8でお望みの事をしたいなら、toMap使えばscala.collection.immutable.Mapを返して
くれる。2.7だとちょっと冗長になるけど、Map(m.toSeq:_*)でいけるかな。
0284デフォルトの名無しさん
2010/04/25(日) 12:50:00やっぱswingつかうんね
サンキュー
0285デフォルトの名無しさん
2010/04/25(日) 13:33:190286デフォルトの名無しさん
2010/04/25(日) 14:18:110287デフォルトの名無しさん
2010/04/25(日) 14:23:12swingの悪口は止めてもらおう
0288デフォルトの名無しさん
2010/04/25(日) 14:40:04同じくV2Cを愛用している。最近のバージョンのJavaだと
起動してからは、そんなにもたつきは感じないなーというのが正直なところ。
あと、起動速度もだいぶ早くなったし。
0289デフォルトの名無しさん
2010/04/25(日) 14:56:13たまに貼ってあるanimated gifとか見ると真っ黒に表示されること無い?
あれって、Javaの問題なんだろうか。元ファイルをブラウザで見ると普通なんだが。ってscalaの話じゃないか
0290デフォルトの名無しさん
2010/04/25(日) 14:59:17まあそろそろスレチだが
0291デフォルトの名無しさん
2010/04/25(日) 15:21:430292デフォルトの名無しさん
2010/04/25(日) 18:48:43我慢するのは実行時コンパイルが済むまでの間だよ。
0293デフォルトの名無しさん
2010/04/25(日) 18:49:48作ったとして、Java直接と比べてどんなメリットが考えられるのだろうか?
0294デフォルトの名無しさん
2010/04/25(日) 19:22:360295デフォルトの名無しさん
2010/04/25(日) 19:38:040296デフォルトの名無しさん
2010/04/25(日) 19:44:150297デフォルトの名無しさん
2010/04/25(日) 21:51:510298デフォルトの名無しさん
2010/04/25(日) 21:54:06どこから始めればいいのですか?
0299デフォルトの名無しさん
2010/04/25(日) 21:54:56immutableばかり使ってたんで、気づかなかったわ。
val m = collection.immutable.Map(1->2, 3->4)
val v = m.view
v foreach println
// (1, 2) (3, 4)
m += 5 -> 6
v foreach println
// (1, 2) (3, 4) (5, 6)
いいね、これ
0300デフォルトの名無しさん
2010/04/25(日) 21:56:08>>299はcollection.mutable.Mpa(1->2, 3->4)
0301デフォルトの名無しさん
2010/04/27(火) 23:21:09> GW中にScalaマスターしたいのですが
> どこから始めればいいのですか?
ScalaWikiから。
本は、通称コップ本が良い。
0302デフォルトの名無しさん
2010/04/28(水) 01:33:190303デフォルトの名無しさん
2010/04/28(水) 01:39:16なんかきもいな
immutable.Stackは1,2,3で初期化されたStackを生成する
mutable.Stackは空のStackを生成して1,2,3の順で追加したものを返す
ってことか
どっちかに統一すればいいのに
0304デフォルトの名無しさん
2010/04/28(水) 02:08:170305デフォルトの名無しさん
2010/04/28(水) 04:54:56Opera,Chrome,IEで比べたけどOperaが特に遅いとは思わなかったな
scaladoc2がそもそも重いつくりだしなぁ
0306デフォルトの名無しさん
2010/04/28(水) 22:40:47どうも、うちの環境が悪いのかなーと思ってプロファイル削除してみたらだいぶましになった
>>303
たしかにどっちでもいいけどどっちかに合わせて欲しいね、mutableからimmutableにリファクタするとかなったときこの挙動知らなかったらあれ?ってなるかも
0307デフォルトの名無しさん
2010/04/29(木) 00:43:50今日ホッテントリ入りしてたScala記事に影響されて入門本買うどころだったが、買う前にこのスレ見てよかった
ちなみにコップ本は2009年の本だけど、Scalaのバージョンはいくつで書かれてる?2.7.7かな
0308デフォルトの名無しさん
2010/04/29(木) 02:43:25http://www.scala-lang.org/gsoc2010
・Scalable Remote Actors
serializationとブロックIOの機能を持つリモートアクタの開発
・ENSIME, a new Scala development environment for Emacs
Emacsに型チェックやインスペクションの機能をつける
・Lift and SBT template engine
SBTのプロジェクトテンプレートエンジンとLiftプロジェクトテンプレート
・Hardware Accelerated 2D Graphics
JOGLなどのシェーダをJava2Dとして扱うためのAPI
・Adding LINQ-awareness to Scala.Net
通常のメソッド呼び出しとしてLINQを実装、SQOを分かりやすい形式にする
・Advanced Semantic Tools for the Scala IDE for Eclipse
インラインでの、コードの折りたたみ表示のような方法による、推論された型やimplicitなどの視覚化
・Collaborative Scaladoc
wikiのようなAPIドキュメントの共同編集環境の構築と、このやり方によるAPIドキュメント製作で発生しうる問題の調査
0309デフォルトの名無しさん
2010/04/29(木) 02:43:46その入門本ってどの本のこといってる?
タイトルに入門とかついている本だったら買うだけ金の無駄だと思うよ。
0310デフォルトの名無しさん
2010/04/29(木) 03:35:240311デフォルトの名無しさん
2010/04/29(木) 03:55:14言語仕様の中身まで書いてない本はクソ扱いしたいガキ
0312デフォルトの名無しさん
2010/04/29(木) 07:33:42ちゃんとJavaから勉強してきてねっ感じの言語
それにコップ本はそんなに難しいわけじゃない
0313デフォルトの名無しさん
2010/04/29(木) 08:11:31Sの文字が2つならんでる表紙のやつ
ttp://wota.jp/ac/?date=20100426#p01
0314デフォルトの名無しさん
2010/04/29(木) 10:22:13チュートリアル的な面でみてもコップ本の方が優れてると思うけど。
初学者から見て入門本の方が優れてるところってどこよ?
0315デフォルトの名無しさん
2010/04/29(木) 10:44:420316デフォルトの名無しさん
2010/04/29(木) 11:00:55レベルの本じゃないと意味がない
0317デフォルトの名無しさん
2010/04/29(木) 11:11:02この時点でこのスレにいる奴は初学者じゃなくて、言語マニアだから
初心者が何を読めばとりあえず使えるようになるか解らなくなっている。
0318デフォルトの名無しさん
2010/04/29(木) 11:14:11いつも痛感してるわ
0319デフォルトの名無しさん
2010/04/29(木) 11:14:22初心者に情報を与えるのは
Java厨、Ruby厨、カスPHP野郎
みたいなのを量産するだけだからやめろ
0320デフォルトの名無しさん
2010/04/29(木) 11:24:35上のほうでAmazonレビューで工作してた入門本の作者が晒されてたけど、
まさかお前じゃないだろうな?
0321デフォルトの名無しさん
2010/04/29(木) 11:27:100322デフォルトの名無しさん
2010/04/29(木) 11:46:25それ以外がゴミなのはどちらも認めてるんじょないか
0323デフォルトの名無しさん
2010/04/29(木) 11:54:24あ、これ(Scalaプログラミング入門)も入門てついてたんだっけ。
こっちは悪くないと思うよ。
コップ本と比べてどうとかはよくわからないけど。
0324デフォルトの名無しさん
2010/04/29(木) 12:25:220325デフォルトの名無しさん
2010/04/29(木) 12:35:18SS本?w
0326デフォルトの名無しさん
2010/04/29(木) 12:43:12説明にややはしょり気味なところが見受けられるけど、Scalaにおけるイディオムなど、
コップ本より実践的な内容にフォーカスしてて良い本だと思う。
0327デフォルトの名無しさん
2010/04/29(木) 12:46:01ありゃダメだな
あれはチラ裏の日記だな
0328デフォルトの名無しさん
2010/04/29(木) 13:37:04実際にScalaでよく使うイディオムなんかにも触れてあって、結構良い本だと
思ったのだが。>David Pollakの本
0329デフォルトの名無しさん
2010/04/29(木) 14:40:20・コップ本
・入門
・工作本
って呼べばいいだろ
0330デフォルトの名無しさん
2010/04/29(木) 14:48:55へんな関数型言語布教させるんじゃねーよ
0331デフォルトの名無しさん
2010/04/29(木) 14:57:11Schemeのことか?
0332デフォルトの名無しさん
2010/04/29(木) 15:24:110333デフォルトの名無しさん
2010/04/29(木) 15:27:37SS本は、既に他言語を学んでる(特にJava)ことが前提な内容みたいだね
関数型は始めてだけど、他の言語入門済みの場合はどっちがいいのかな〜
0334デフォルトの名無しさん
2010/04/29(木) 15:28:460335デフォルトの名無しさん
2010/04/29(木) 15:35:41それは同意。ああいうアジり気味の書き方って内容に厳密さを求める向きには
受け入れられづらいと思うのだが、どうなんだろうねえ。
0336デフォルトの名無しさん
2010/04/29(木) 15:35:45通しで読んで、Scalaのノリをつかむにはいい本だと思うよ。
敢えて言えば、コップ本こそ、公式サイトの情報とネットの情報でまかなえるから
買わなくていいと言える。
0337デフォルトの名無しさん
2010/04/29(木) 15:48:240338デフォルトの名無しさん
2010/04/29(木) 16:11:46アジるって煽るって意味なのか
0339デフォルトの名無しさん
2010/04/29(木) 19:22:51関数型言語は Lisp とか Scheme とか使ってたんで抵抗は無いけど、
それでも記法がちょっと独特で迷う
0340デフォルトの名無しさん
2010/04/29(木) 20:06:480341デフォルトの名無しさん
2010/04/29(木) 21:44:170342デフォルトの名無しさん
2010/04/29(木) 21:49:410343デフォルトの名無しさん
2010/04/29(木) 22:40:13ttp://sites.google.com/site/scalatohoku/%E5%8B%89%E5%BC%B7%E4%BC%9A%E8%B3%87%E6%96%99
ttp://diaspar.jp/-/scala
英語なら、何冊かネットで読める草稿があるぞ
ttp://programming-scala.labs.oreilly.com/
ttp://groups.google.com/group/the-lift-book
Programming in Scala(Scalaスケーラブルプログラミング)の元になった感じの内容のもある。
Scala By Example
ttp://www.scala-lang.org/sites/default/files/linuxsoft_archives/docu/files/ScalaByExample.pdf
対応バージョンが2.7より古いかもしれないけど、一番上の中に和訳もある
・Scala By Example 和訳
・チュートリアル A Scala Tutorial for Java Programer 和訳
0344デフォルトの名無しさん
2010/04/29(木) 22:59:08とりあえず、>>340は文法がきもくないと思う言語を挙げてみてくれ
主観できもいとだけ言われても、どういう美的感覚持ってるのかがわからんと
ピンと来ない
0345デフォルトの名無しさん
2010/04/30(金) 00:12:59ログ見りゃわかるが、粘着してるやつがいるんだよ
0346デフォルトの名無しさん
2010/04/30(金) 06:13:41http://vmkit.llvm.org/
0347デフォルトの名無しさん
2010/04/30(金) 15:00:21340ではないが、型を名前の後に置くこと(i:int, s:String) に馴染めない。
これを int i, String s と書けるようにするだけで、だいぶ違うだろ。
0348デフォルトの名無しさん
2010/04/30(金) 15:33:340349デフォルトの名無しさん
2010/04/30(金) 18:29:03それは、そうした方がJavaから移行したユーザが馴染みやすいって意味だよね
それはその通りだと思う。
ただ、Scalaの場合変数の型を省略できる、というか省略するのが普通なのでその点は
考えなければいけないと思う。もし、Java式の型宣言にするなら、型を省略したときは、
別途val x = 3とかvar x = 3みたいにしなければいけなくなって、構文的な整合性の観点
からはあまり良くない。C#は型宣言を省略する場合はvarと書くという方式だけど、あれは
後付けだから仕方ないのであって、新しく言語作るときにああするのはどうかねえ…
0350デフォルトの名無しさん
2010/04/30(金) 18:39:09それに関数型言語は後置にするのが多いからね
まあ、慣れの問題だね
0351デフォルトの名無しさん
2010/04/30(金) 20:21:440352デフォルトの名無しさん
2010/04/30(金) 20:30:16つまりC系統の言語しか触ってないってことだからね
もっといろんな言語に触れたほうがいいと思うよ
0353デフォルトの名無しさん
2010/04/30(金) 20:40:33つか、そうしないと文法的整合性が取りにくい
0354デフォルトの名無しさん
2010/04/30(金) 21:20:47Cとの整合性をとって採用されなかったけど
0355デフォルトの名無しさん
2010/04/30(金) 21:56:160356デフォルトの名無しさん
2010/04/30(金) 22:51:070357デフォルトの名無しさん
2010/04/30(金) 23:18:530358デフォルトの名無しさん
2010/04/30(金) 23:42:15でも、アンダースコア _ は、どうかなあ。。。
( _ > _) とか書いていると、顔文字に見えてくるんだよね。
0359デフォルトの名無しさん
2010/05/01(土) 00:23:16ゴミだな
0360デフォルトの名無しさん
2010/05/01(土) 00:38:540361デフォルトの名無しさん
2010/05/01(土) 01:41:26golangもやはり後
0362デフォルトの名無しさん
2010/05/01(土) 01:59:45構文解析が楽になるというのもあるかも(これはそれほど重要じゃないだろうけど)。
0363デフォルトの名無しさん
2010/05/01(土) 02:33:060364デフォルトの名無しさん
2010/05/01(土) 03:20:38くだらない。
0365デフォルトの名無しさん
2010/05/01(土) 07:59:340366デフォルトの名無しさん
2010/05/01(土) 08:56:55http://days2010.scala-lang.org/node/136
英語わかんなくても結構面白い
コーラのボトル持ってしゃべる人が居たりw
0367デフォルトの名無しさん
2010/05/01(土) 11:36:34グッジョブ
0368デフォルトの名無しさん
2010/05/01(土) 11:51:38さっぱりわからんけど、(Scala界隈の)有名人がでてるやつとか、面白い内容のおすすめなのとかある?
0369デフォルトの名無しさん
2010/05/01(土) 12:51:54とりあえず個人的なお勧めは、Oderskey先生のOpening Talkと
Named And Default Arguments, それとSneaking Scala Into Your Organization
辺りかな。Odersky先生以外のScala界隈の有名人と言ったらDavid Pollakとかだけど
彼は発表してなかったなー。あと、IntelliJの人のScalaのリファクタリング機能に関する
発表とかも面白かった
0370デフォルトの名無しさん
2010/05/01(土) 12:52:540371デフォルトの名無しさん
2010/05/01(土) 12:53:16なんとかしてくれ
0372デフォルトの名無しさん
2010/05/01(土) 13:28:010373デフォルトの名無しさん
2010/05/01(土) 20:01:480374デフォルトの名無しさん
2010/05/01(土) 20:26:20IronScalaというか現在のScalaの.NET版実装もMSの協力があったとかそんなのを
読んだ覚えが…。現在のScala.NET実装は.NETのジェネリクスに非対応だったりして
実用に使うのは厳しいが。
0375デフォルトの名無しさん
2010/05/01(土) 20:30:45この先もずっと?
0376デフォルトの名無しさん
2010/05/01(土) 21:13:19Javaのerasureに合わせるというのは崩せないだろ
もしそれやったら現在のScalaユーザの大部分を失う危険性がある一方で
それで取り込めるユーザがどれだけ居るか…
それに、ScalaのジェネリクスはJavaのそれに比べてかなり強化されてるから
erasureベースでもJavaに比べればだいぶ不満は感じにくくなってるよ
0377デフォルトの名無しさん
2010/05/01(土) 21:41:36Boxの中身をパターンマッチングさせようとすると、出来なくてイライラする。
0378デフォルトの名無しさん
2010/05/01(土) 21:49:32ネイティブで動かない言語なんてゴミだろ
0379デフォルトの名無しさん
2010/05/01(土) 21:55:580380デフォルトの名無しさん
2010/05/01(土) 22:01:460381デフォルトの名無しさん
2010/05/01(土) 23:10:58今の時代?
昔の時代だったら、確かに遅くてゴミだったけど、
今の時代だとそんなに気にならない。
0382デフォルトの名無しさん
2010/05/01(土) 23:13:07SSDとか使っちゃうと言語自体の速度が影響する割合がでかくなる
0383デフォルトの名無しさん
2010/05/01(土) 23:30:04def readLine(text: String, args: Any*) = Console.readLine(text, args)
def readLine(text: String, args: Any*) = Console.readLine(text, args: _*)
の間違いだと思うんだだれかバグ報告しといて俺英語できない
0384デフォルトの名無しさん
2010/05/02(日) 00:13:24まだPredefにバグ残ってんのか?
0385デフォルトの名無しさん
2010/05/02(日) 00:18:19英語がたどたどしいけど、それにしてもすげぇな
0386デフォルトの名無しさん
2010/05/02(日) 01:30:04たぶんツイッターにいてtsudaってくれてたひとじゃないかな?
自分英語わからんからああいうのはすごく助かるわ
正直、>>385の書いてる通り英語はたどたどしかったし質問聴きとるのは
難しかったしでなかなか大変でした。あのときは、テンションが凄まじく高かったので
今思うと凄いペースでtsudaってましたね。あれでScala Daysに興味を持ってもらえたなら
こちらとしても嬉しいですね。
0388デフォルトの名無しさん
2010/05/02(日) 02:18:14じゃ、せっかくなんで、何か面白いこと書いてくれ。
0389デフォルトの名無しさん
2010/05/02(日) 02:21:150390デフォルトの名無しさん
2010/05/02(日) 02:29:430391デフォルトの名無しさん
2010/05/02(日) 02:32:110392デフォルトの名無しさん
2010/05/02(日) 02:32:400393デフォルトの名無しさん
2010/05/02(日) 03:00:07日本でも Scala を広めようず
0394デフォルトの名無しさん
2010/05/02(日) 03:38:31あ、本人が降臨しとるw
確かにすごいペースでtsudaってるなぁとは思ったけど、自分は普通に面白かったよ
Scalaのロゴの元になった階段の写真とかも
そういやScala作者にサイン本もらってたな、うらやま
まぁ日本での布教活動を頑張っておくれ
個人的な希望を言えば特に日本語情報の充実を…
0395デフォルトの名無しさん
2010/05/02(日) 03:45:56ilasmなんて初めて使った。
0396デフォルトの名無しさん
2010/05/02(日) 10:10:07i++
++i
0397デフォルトの名無しさん
2010/05/02(日) 10:16:470398デフォルトの名無しさん
2010/05/02(日) 11:26:26面白いこと…うーむ、思いつかないです。申し訳ない。Scala Daysで面白かったこと
とかなら書けるかもしれないですが。
>>393
はい。もちろんそのつもりです。キラーアプリとか作れるといいんですけど、自分は
言語家というか構文解析屋?で、パーザジェネレータとかそんなんばっか作ってて、
あまり普通のアプリ作ったりしない(というか不得手)ので、その辺は他力本願に
なってしまいますね。基本的にはScalaの日本語情報の充実という形での貢献
になりますかね。
>>394
ありがとうございます。面白いと言ってもらえるのは励みになりますね。Odersky先生の
サイン本は大事にしたいところですw
日本での布教活動は今までも地道にやってきましたが、今年はもっと精力的に
行っていきたいと思います。日本語情報の充実、というのは正直なんとかしないとなーと
思っていて、特に、経験上よくハマるポイントとかまとめたいところですねー。あと、まともな
(翻訳でない)日本語版Scala本とか。
それと、Scalaでなんかわからんことがあったらここで聞け!みたいな定番の場所が一つあればなあ
、などと思っています。scala-beとかscala--tohokuとかもありますが、それほど質問は多く無いん
ですよね。結局、皆、疑問をブログとかTwitterでつぶやかれるので、その辺を見て、答えられそうな
疑問だったらできるだけレスするように心がけてますが、あちこち分散してるとフォローするのも
大変&質問への解答などが集積されないので、もうちょいなんとかしたいですね。
0400デフォルトの名無しさん
2010/05/02(日) 11:45:310401デフォルトの名無しさん
2010/05/02(日) 11:52:290402デフォルトの名無しさん
2010/05/02(日) 12:18:06やっぱりスクラッチからの強さを見せたいよね
0403デフォルトの名無しさん
2010/05/02(日) 13:24:53バックエンドをRubyからScalaにしたんじゃなかったっけ
0404デフォルトの名無しさん
2010/05/02(日) 14:06:28なにそれこわい。
Srails? SRuby??
0405デフォルトの名無しさん
2010/05/02(日) 15:02:06ディスクのI/Oよりネットワークだろ…
0406デフォルトの名無しさん
2010/05/02(日) 15:27:39お前開発したこと無いだろ
0407デフォルトの名無しさん
2010/05/02(日) 15:49:15「.NET プログラミング Tips」ってサイトも人気みたいだし、需要有ると思う。
0408デフォルトの名無しさん
2010/05/02(日) 17:02:45Gizzardだっけ。
どっかでCassandraを使うって話も見たんだけど、どっちなんだろ。
0409デフォルトの名無しさん
2010/05/02(日) 19:41:11Railsの代わりにはなりそうもない
0410デフォルトの名無しさん
2010/05/02(日) 19:53:32お前の頭が悪いだけ。
0411デフォルトの名無しさん
2010/05/02(日) 19:58:310412デフォルトの名無しさん
2010/05/02(日) 20:12:12プログラミングなんて他の奴にやらせるからな
0413デフォルトの名無しさん
2010/05/02(日) 20:43:43変わるのはRubyの部分だろ
0414デフォルトの名無しさん
2010/05/02(日) 20:49:38タメかよwwww
呪われしエヴァ世代(初期放送時中2世代wwww)だよね^^
つーか
体育館のマットに詰めてイジメて殺したってのもあったじゃん
二つ上で・・・
0415デフォルトの名無しさん
2010/05/02(日) 21:47:58RailsはRubyとは別の言語を新たに習得するようなものだ、みたいなことをよく言われるけど,Liftもそうなん?
0416デフォルトの名無しさん
2010/05/02(日) 21:52:40いやだからRailsの代わりにしたいんだったらGrailsだってば。
0417デフォルトの名無しさん
2010/05/02(日) 22:00:240418デフォルトの名無しさん
2010/05/02(日) 22:11:21twitterの件は確かメッセージングの部分を置き換えただけじゃなかったか?
俺的には java.util.concurrent を使えばいいだけの部分を scala 使ってみたいから使ってみた。って印象なんだが。
The Why and How of Scala at Twitter
http://www.slideshare.net/al3x/the-how-and-why-of-scala-at-twitter
とか、Twitterがオープンソースで公開している、自社で使っているらしいソフトウェア
群を見る限りでは、バックエンドはおおむねScalaで置き換えたみたい
あと、メッセージキューについてだけど、
JavaとScalaではソースの書きやすさが(少なくともある程度慣れれば)段違いなので、
Scala使ってみたいから使ってみたという印象は受けなかったかな。Twitterの人たちは
書きやすい言語を好んで使っている印象がある。あとは、java.util.concurrent使えば
済む程度の話ならさすがに新しくライブラリ作ったりはしないと思う。
http://github.com/robey/kestrel/tree/master/src/main/scala/net/lag/kestrel/
や説明
http://robey.lag.net/2008/05/07/scarling.html
(Scarlingってのは、Kestrelの元になったRubyで書かれてるメッセージキューの
ことね)を読み直してみたが、やっぱり
java.util.concurrentが提供しているくらいのプリミティブだと全然足りないと思う。
0421デフォルトの名無しさん
2010/05/02(日) 23:28:58リンク先を読まずに背景も全く知らずに言うが、javaa.util.concurrentは
「プリミティブが足りない」じゃなくて「プリミティブ過ぎる」じゃないのか?
java.util.concurrentの機能があれば事足りる、という意図なのかなと思ったので
足りてないんじゃない?というニュアンスで「プリミティブが足りない」と書いたのだけど
確かに「プリミティブ過ぎる」という方が実情をよく表してる。
0423デフォルトの名無しさん
2010/05/03(月) 09:08:420424デフォルトの名無しさん
2010/05/03(月) 09:50:090425デフォルトの名無しさん
2010/05/03(月) 10:41:10いった。日本は独自のLispで頑張るらしいけどw
0426デフォルトの名無しさん
2010/05/03(月) 12:16:390427デフォルトの名無しさん
2010/05/03(月) 12:16:450428デフォルトの名無しさん
2010/05/03(月) 21:29:172.8ならManifest.typeArgumentsで型パラメータとれる
>>377
Optionだけならコレで。
def foo[A](a:Option[A])(implicit m:Manifest[A]) = a match {
case None => "none"
case Some(_) =>
val sm = manifest[String]
m match {
case reflect.ClassManifest.Int => "int"
case `sm` => "string"
case _ => "other"
}
}
0429デフォルトの名無しさん
2010/05/03(月) 21:45:13webアプリに詳しくないからちゃんとした比較してるわけじゃないが、ちょっと触ったかんじ。
ScalaならLift、てなってるから選択してしまいがちだけど。
Javaからの移行組ならPlayのほうがいいんでないかね。日本語ページあるし。
開発の人もPlayでScalaをだんだんと学んでいくことを意識してるみたいだし。
LiftはScalaのテクニックを学ぶにはいいんだろうけど、
設計があまり綺麗じゃないという話もあるのでそっちの参考にはならないのかも
0430デフォルトの名無しさん
2010/05/03(月) 21:53:00何その汚いコード。そんなの有りかよ。
0431デフォルトの名無しさん
2010/05/03(月) 21:59:15あー?貴様が美しく書けよ
0432デフォルトの名無しさん
2010/05/03(月) 22:32:51> わからんことがあったらここで聞け!みたいな定番の場所が一つあればなあ
2chじゃダメなん?
というレスを書いてる最中に >430-431が書き込まれてたw 2chじゃダメかもw
0433デフォルトの名無しさん
2010/05/03(月) 22:36:21Stack Overflowの日本語版みたいなとことかあると良さそうだけどな。
0434デフォルトの名無しさん
2010/05/03(月) 22:53:48困ったら助けてね
0435デフォルトの名無しさん
2010/05/03(月) 22:55:59lift以外にもWebフレームワークあるけども
0436デフォルトの名無しさん
2010/05/03(月) 23:13:14引数で省略可能な場合はデフォルト引数と組み合わせてこんな感じにすりゃいいの?
def func(i: Int, s: Option[String] = None) = {
...
}
0437デフォルトの名無しさん
2010/05/03(月) 23:23:55いや、erasureじゃなきゃ、そんな珍妙な解決法取らなくてもいいのに
って話だろ。
0438デフォルトの名無しさん
2010/05/03(月) 23:34:33お、自分もSS本買ってきてこれからやるところ
よろしくおねがいしまふ
0439デフォルトの名無しさん
2010/05/04(火) 00:39:59プログラミング言語のハブサイトとしてふさわしくないよ
>>431みたいなレスは茶目っ気たっぷりで俺は好きだけど
言葉のまんま受け取る頭固い奴も多いしな
回答のお礼を強要してくる2chリテラシーの低いアホもでてくるだろうし
0440デフォルトの名無しさん
2010/05/04(火) 00:57:25マイナーな技術でも何かしらスレがあるのは大きい。代わりがあればいいんだけどな。
0441デフォルトの名無しさん
2010/05/04(火) 01:22:00メジャーになってくるとたちまちノイズが増えてダメになる
0442デフォルトの名無しさん
2010/05/04(火) 03:23:01Facebook使った事ないから、適当に言ってるけど
それとも匿名で気軽に書き込みできる方が、日本人には合ってるのかね
0443デフォルトの名無しさん
2010/05/04(火) 09:47:090444デフォルトの名無しさん
2010/05/04(火) 10:02:350445デフォルトの名無しさん
2010/05/04(火) 10:36:460446デフォルトの名無しさん
2010/05/04(火) 11:16:35こりゃ他の言語でガシガシコード書いた経験のある人が第二言語としてScalaを入門してみよう、という意味での「入門」だなw
0447デフォルトの名無しさん
2010/05/04(火) 13:34:510448デフォルトの名無しさん
2010/05/04(火) 15:02:56javaしか経験がない程度じゃ歯が立たないだろうな
0449デフォルトの名無しさん
2010/05/04(火) 15:05:358章ぐらいまでは、余裕だろ
0450デフォルトの名無しさん
2010/05/04(火) 15:16:000451446
2010/05/04(火) 15:52:19やっぱそうだよなぁ
Scalaやってるひとらすげーよ、上級プログラマだな
>>449-450
ほーどれくらいまで簡単なのかな、って見たらほぼ全部じゃねーかw
この本で難しかったら、次読もうとしてたコップ本なんて買う前から難攻不落決定だなw
Rubyあたりに行ってみるかなぁ
0452デフォルトの名無しさん
2010/05/04(火) 16:18:00VBやってる人の中にも初級と中級がいるのでは
アセンブラみたいに特に言語としてScalaが難しい訳じゃないし
0453デフォルトの名無しさん
2010/05/04(火) 16:18:580454デフォルトの名無しさん
2010/05/04(火) 16:21:36上級って言うか
少なくともjava(かC#かC++)とruby(かpython)の経験があることを前提にしているよね。
関数型言語の経験は前提とはしていないが
javaに○○の機能が無くてイライラとかしたことのあるレベルは必要って感じかな
0455デフォルトの名無しさん
2010/05/04(火) 16:25:040456デフォルトの名無しさん
2010/05/04(火) 16:25:21他の言語学習するの楽になるぞ
0457デフォルトの名無しさん
2010/05/04(火) 16:34:000458デフォルトの名無しさん
2010/05/04(火) 16:34:37Scalaでサポートしてる関数指向の部分は簡単に理解出来そう
そしてプレースホルダ構文に感動する
0459デフォルトの名無しさん
2010/05/04(火) 16:35:31知らないから難しく見えるだけだよね
0460デフォルトの名無しさん
2010/05/04(火) 16:45:50説明の仕方次第ではあるね。
Java経験者としては、コップ本は細かい疑問に随時答えてくれるので助かる。
0461デフォルトの名無しさん
2010/05/04(火) 16:48:020462デフォルトの名無しさん
2010/05/04(火) 17:03:54Scala意味もなく難読な文法と説明で悦に入ってるだけだし
0463デフォルトの名無しさん
2010/05/04(火) 17:07:470464デフォルトの名無しさん
2010/05/04(火) 17:15:01まぁScalaが日本で流行るかどうかは日本語情報がどれだけ整備されるか、じゃないかなぁ
PHPが流行った要因の一つに、あの素晴らしい日本語ドキュメント群が挙げられると思う
ただでさえ難解と言われてるから、その上英語ドキュメントしかないとなれば、日本では流行らなさそう
0465デフォルトの名無しさん
2010/05/04(火) 17:17:05ドキュメント云々より今Java使ってる会社がどんだけ興味示すかだと思う
0466デフォルトの名無しさん
2010/05/04(火) 17:21:09ないだろw
0467デフォルトの名無しさん
2010/05/04(火) 17:21:12うん、そういうレベルで使われるために母国語ドキュメントは必要じゃない?
トップクラスの人たちだけが使うものなら要らないけど、オダースキー先生が目標としてる学術・研究用言語に留まらず、現場レベルで使われる言語になるには、そういうところがポイントになったりするもんだよ
0468デフォルトの名無しさん
2010/05/04(火) 17:26:380469デフォルトの名無しさん
2010/05/04(火) 17:29:22あーそういえば、関数型言語っていう側面もあってですねーと繋げるべき。
0470デフォルトの名無しさん
2010/05/04(火) 17:34:26変な方向に行かなければいいと思う
0471デフォルトの名無しさん
2010/05/04(火) 17:40:54素人でも作れるとかdisってる奴多いけど素人でも作れるって実は凄いことだろ
0472デフォルトの名無しさん
2010/05/04(火) 17:51:32Scala = PHP
つまりブラック言語ってことだな
0473デフォルトの名無しさん
2010/05/04(火) 17:52:040474デフォルトの名無しさん
2010/05/04(火) 17:53:510475デフォルトの名無しさん
2010/05/04(火) 17:56:41これは同感
流行ってしまったのが言語仕様がちょっとルーズなPHPだからアレなわけで、その他のPHPの豊富なドキュメントや入門のしやすさ、良いものを節操なく取り込む姿勢、とかは評価されてもいい
Scalaは言語仕様もしっかりしていて、ベースは申し分ないから、後はその外堀をどう形成していくかでだいぶ変わると思う
誤解を恐れずに言えば、良いものが必ずしも普及するわけではないことは、RubyやPythonが証明してくれているので、Scalaにはうまく立ち回って欲しいと本気で願う
繰り返すが他の言語を批判する気はまったくない
0476デフォルトの名無しさん
2010/05/04(火) 17:56:48みたいなことじゃね
セキュリティホールならPerlやJavaのサイトも同じように出るわけだし
0477デフォルトの名無しさん
2010/05/04(火) 18:04:03んだね。
C++にしたって、文法が拡張されたCとして使い始めた御仁も多かろう。俺とか。
0478デフォルトの名無しさん
2010/05/04(火) 18:04:48貢献しないで2chで愚痴るだけだろw
実際ここに今いるやつでまともなScalaのコード
書ける人間いないだろ?
まぁそうゆうことだ
0479デフォルトの名無しさん
2010/05/04(火) 18:25:040480デフォルトの名無しさん
2010/05/04(火) 18:40:14× お前らみたいに
○ 俺みたいに
0481デフォルトの名無しさん
2010/05/04(火) 18:43:170482デフォルトの名無しさん
2010/05/04(火) 19:42:090483デフォルトの名無しさん
2010/05/04(火) 19:44:06どうぞどうぞ
0484デフォルトの名無しさん
2010/05/04(火) 19:52:020485デフォルトの名無しさん
2010/05/04(火) 19:56:35こういうのはあった。
http://scala.sygneca.com/
0486デフォルトの名無しさん
2010/05/04(火) 20:01:440487デフォルトの名無しさん
2010/05/04(火) 20:03:41見る資格が無いのだろw
0488デフォルトの名無しさん
2010/05/04(火) 20:16:19作ろうとしたんだけど既にあるみたいなんだが
0489デフォルトの名無しさん
2010/05/04(火) 21:19:31IE以外のブラウザだとgdgdだな
0490デフォルトの名無しさん
2010/05/04(火) 21:28:20List作るだけ?
0491デフォルトの名無しさん
2010/05/04(火) 21:39:32えっ?
0492デフォルトの名無しさん
2010/05/04(火) 21:46:43map、flatMap、filterをもっているものならなんでも使えるよ
Scalaの標準ライブラリならIteratorのサブクラスはみんな使える
0493デフォルトの名無しさん
2010/05/04(火) 21:51:03そうなのですか。yieldが何をしているのか
よくわからないのですが
0494デフォルトの名無しさん
2010/05/04(火) 22:05:17for構文で結果を返したいときに使うというのはわかるよね?
それでなにに対してforを使うかによって結果が変わる
どんな結果になるかは上記の関数の実装によるんだけど、2.8になってだいぶ同じものが返るようになった
Listに対してfor、yieldを使えばListが返るし、Mapに対してはMap、Optionに対してもOptionが返る
でも必ずしもそうではないから注意
0495デフォルトの名無しさん
2010/05/04(火) 22:35:38それは理解しているのですが
どうゆう仕組みなのかよく解りません。
applyとかupdateのような何か別の
関数の糖衣構文なのでしょうか
0496デフォルトの名無しさん
2010/05/04(火) 22:50:27でも、そんなにちゃんと仕組みを知る必要はないと思う
どうしても知りたければコップ本に書いてあるけど
Haskellでモナドを勉強して、Scalaのforも似たようなもんだと思うのが一番正しい理解になると思うが
別にそこまでやる必要はない
0497デフォルトの名無しさん
2010/05/04(火) 23:00:25println("iterator")
val iterator = Iterator(1,2,3)
for(i <- iterator) yield {println(i)}
println("iterable")
val iterable = Iterable(1,2,3)
for(i <- iterable) yield {println(i)}
0498デフォルトの名無しさん
2010/05/04(火) 23:03:01後でちょっとコップ本見てきます。
yieldだけみるとモナドの規則1に従うように見えますが
結局Haskellのdo記法と同じ事が可能との認識でいいのですかね?
0499デフォルトの名無しさん
2010/05/04(火) 23:10:14というか、このスレの>>92で既にそういう話があるね
0500デフォルトの名無しさん
2010/05/04(火) 23:37:07Scalaは複雑な言語だが(学ぶにも)スケーラブルな言語だ
という話もあるんで分かるところから徐々にやってけばいいと思う。
0501デフォルトの名無しさん
2010/05/04(火) 23:50:15Rubyなど他の言語から入った人はどう学べばいいのかな
ジェネリクス知ってることが前提になってる、とかあるみたいだし
0502デフォルトの名無しさん
2010/05/05(水) 00:14:22静的型付け言語触った事ないってんじゃなければ、Genericsもなんとなく想像できると思うし
0503デフォルトの名無しさん
2010/05/05(水) 02:59:55正式版では2.7.7みたいに普通に戻るよね?!
このままだったらクソ過ぎる…
0504デフォルトの名無しさん
2010/05/05(水) 03:22:500505デフォルトの名無しさん
2010/05/05(水) 03:30:47PHPなんて、
php.net/関数名
ってブラウザのアドレス欄に打ち込むだけで日本語リファレンス見れるんだぜ
関数名が一致しなければそのまま検索になる優れもの
こういうところは見習わないとな!
0506デフォルトの名無しさん
2010/05/05(水) 07:40:54meta stackoverflowってのを見つけた。
http://meta.stackoverflow.com/
2chの運営板みたいなものみたい。
バグ報告や機能要望意外に、よりよくするためにはどうするか、という
議論なんかもされてるんで
もしコミュニティサイト作る場合はなにか参考になるかも。
0507デフォルトの名無しさん
2010/05/05(水) 08:33:140508デフォルトの名無しさん
2010/05/05(水) 14:18:28「=>」は「x => y」なら、xを引き数でyを戻り値とする関数、みたいな意味だと理解したけど
「->」について誰か詳しく教えてください
「<:」とかも確かあるよね
ここらへんの記号の意味って検索で調べにくいんだけど、一覧になってるページとかないかなあ
0509デフォルトの名無しさん
2010/05/05(水) 14:25:53->は2要素のタプルを作る演算子。"A" -> "B"で、("A", "B")というタプルが出来る
<:は、ジェネリクスで使われる記号で、def foo[A <: B](...)とかあったら、型パラメータAは
Bのサブタイプである(継承している)ことを意味する
0511デフォルトの名無しさん
2010/05/05(水) 14:35:44Predefにany2ArrowAssocていうimplicit defが定義されてるのでどのオブジェクトからも呼び出せる
なにげに->じゃなくて→でもいける
a->bが嫌なら(a,b)でもPair(a,b)でも
0512デフォルトの名無しさん
2010/05/05(水) 14:37:150513デフォルトの名無しさん
2010/05/05(水) 14:40:27Javaが入ってるサーバは多少あるから(DreamHostとか)、Servletコンテナに依存ぜずに
CGI的につかえるようになればいいんだろうか
0514デフォルトの名無しさん
2010/05/05(水) 14:44:10→でもいいのか。Smalltalkみたいだな。
0515デフォルトの名無しさん
2010/05/05(水) 14:48:29わかりやすい説明ありがとうございます
連想配列のペアを作るようなものか
PHPやってるから違和感ありまくり
こういう記号類(糖衣構文?)って、どこかにまとまってたりします?webでも紙媒体でも
0516デフォルトの名無しさん
2010/05/05(水) 14:50:03重量湖底のクラウド型のレン鯖借りれば自由に使えるから
それでいいんじゃない?
ちなみに、=>の代わりに⇒、<-の代わりに←を使うこともできる。
val mult = (x: Int, y: Int) ⇒ x * y
とか
for(x ← List(1, 2, 3, 4)) yield x * 2
とか。普通のScalaプログラムで使ってるのを見た覚えが無いがw
一応言語仕様で規定されている
0518デフォルトの名無しさん
2010/05/05(水) 15:03:52はScala本体の機能で
->
は単なる関数だね
Scala本体の機能の方はコップ本でも見ればだいたい分かる
関数の方は自分がimportするライブラリのドキュメントを見ればよろし
まあPredefは特殊だけど
=> <- <: >: <%みたいな名前の関数は自分じゃ定義できないみたいだ
0519デフォルトの名無しさん
2010/05/05(水) 15:05:40ありがとうございます
コップ本買ってみます
0520デフォルトの名無しさん
2010/05/05(水) 15:16:26;
って普通の命令型の言語のセミコロンと同義ですかね?
ほぼ同じ。Scalaでも同じ行に二つ以上の式を並べたいときとかに使う
あと、Scalaに慣れてない人は普通に行末に;付けてる人が多いかも
0522デフォルトの名無しさん
2010/05/05(水) 17:10:29日本語周りの処理に弱いとか聞かないし、遅いとも言われないし、難読的とも聞かないし、言語仕様がクソとか言われてないし、記述が冗長とも見かけない気がする
0523デフォルトの名無しさん
2010/05/05(水) 17:29:500524デフォルトの名無しさん
2010/05/05(水) 17:33:15かかるしやってられん
0525デフォルトの名無しさん
2010/05/05(水) 17:36:36それはおっきなデメリットだw
0526デフォルトの名無しさん
2010/05/05(水) 17:37:08それらは相対的・主観的な評価じゃないか?
現時点での欠点としては、Javaと比べてIDEの出来が悪いことかな。
0527デフォルトの名無しさん
2010/05/05(水) 17:43:520528デフォルトの名無しさん
2010/05/05(水) 17:49:290529デフォルトの名無しさん
2010/05/05(水) 18:09:020530デフォルトの名無しさん
2010/05/05(水) 18:40:33上の方でちらっと話が出てるけど、JavaのPlayってのも使えるの?
0531デフォルトの名無しさん
2010/05/05(水) 18:43:39役に立たないことがある。
Playも結構良さげ。あと、Java用だけどWicketとScalaは結構相性が良いらしい
という話をときどき聞くがどうなんだろう…
0533デフォルトの名無しさん
2010/05/05(水) 19:01:49品質悪いから使い物にならないよ
0534デフォルトの名無しさん
2010/05/05(水) 19:03:030535デフォルトの名無しさん
2010/05/05(水) 19:17:37ってどうなの?
DSLはおもしろいらしいけど
0536デフォルトの名無しさん
2010/05/05(水) 19:54:41静的言語の補完機能に慣れ切ってると動的言語使いづらい
0537デフォルトの名無しさん
2010/05/05(水) 21:27:540538デフォルトの名無しさん
2010/05/05(水) 21:28:490539デフォルトの名無しさん
2010/05/05(水) 21:30:01最初にScalaのパターンマッチ関係の処理を
実装よりの部分から理解するにはどこから
始めればいいのでしょうか?
0540デフォルトの名無しさん
2010/05/05(水) 22:10:29俺もScalaの良い点だけでなく欠点も把握しておきたいな。
利点も欠点も状況しだいなとこあるので、できれば
このようなプロジェクトだとこういう問題があるよ、とか。
携帯機器向けとかだとランタイムが大きくなっちゃうから
proguardなどを使う必要がある。
スクリプトとして使うには起動が重い
ものによってはREPLたちあげっぱにしといて、ロードして使う
上でerasureの話がでてるけど、Javaとの互換性やJVMで動くことは
利点にも欠点にもなる
検査例外が無い
検査例外の必要性は人によって分かれそう
ここではバージョニングとスケーラビリティが問題視されてる
http://pub.ne.jp/1691/?entry_id=1129006
高階関数使う言語だとうまく働かない、という話も
ライブラリが中途半端
ファイル入出力とか、基本的なものがまだ整備されてなくて
Javaのものを使用する必要がある
現状日本語情報がまだ少ないのも欠点か
0541デフォルトの名無しさん
2010/05/05(水) 22:29:11>>携帯機器向けとかだとランタイムが大きくなっちゃうから
>>proguardなどを使う必要がある。
互換性の検証必要だけど、Android用のScala.jarって2MB切ってるし
実質64MBあれば動くし、今後ハードがJVMの性能上がれば誤差みたいな
問題になるよ。家電にOSGi入れるとかアホなことやってる連中からすると
よっぽど現実的だと思うよ
0542デフォルトの名無しさん
2010/05/05(水) 22:39:56Android用のScala.jarってあるのか!
サイズが問題になりそうな場面では使えそう。
アプレットとか
0543デフォルトの名無しさん
2010/05/05(水) 22:40:080544デフォルトの名無しさん
2010/05/05(水) 22:43:48OpenWnnとか4M越えてるし
許容範囲でしょ。
現状、性能度外視状態だけど
ARM 600Mhz メモリ256MBの環境で
動くことは動くよ
0545デフォルトの名無しさん
2010/05/05(水) 22:51:05Androidの仕様上は、アプリ毎にJVM起動していくわけだから、Scala使うアプリ毎に2MBずつ
という計算になるんじゃね?
あと、1個のアプリが使える空間も少ないとかなんとか。
0546デフォルトの名無しさん
2010/05/05(水) 22:58:210547デフォルトの名無しさん
2010/05/06(木) 00:32:11Twitterって今はScalaで実装されてるんだっけ?
0548デフォルトの名無しさん
2010/05/06(木) 00:38:010549デフォルトの名無しさん
2010/05/06(木) 01:17:21処理速度や機能的にはJavaと全く同等で、ファイルサイズだけが問題なのかな?現状
0550デフォルトの名無しさん
2010/05/06(木) 05:29:24http://groovy.dzone.com/articles/why-scala-actors-15-20-times
何度も通ってきた道だけど
クライアントにはあんま向かないとは思う
0551デフォルトの名無しさん
2010/05/06(木) 14:44:17jarだから実際のクラスファイルはメモリ上で増えるんじゃね?
もちろん、全てのScalaクラスをロードする訳じゃないとは思うけど。
0552デフォルトの名無しさん
2010/05/06(木) 20:11:26Scaler?Scalist?
0553デフォルトの名無しさん
2010/05/06(木) 20:21:470554デフォルトの名無しさん
2010/05/06(木) 20:42:320555デフォルトの名無しさん
2010/05/06(木) 22:14:31上のほうのリンクの「なぜScalaを使わないのか」は
IDEが未成熟だからって意見がつよいのか
Javaのやつが便利すぎるからなぁ
あとエコシステムがもっと回らないと、とか
レビュワやメンテナに読みづらいコードが量産されそう、とか
そもそもJavaでうまくいってるのに移行する理由がない、とかおもしろい。
0556デフォルトの名無しさん
2010/05/06(木) 22:19:350557デフォルトの名無しさん
2010/05/06(木) 22:22:48下のリンクのやつはよくわからんな。
ActorとFiberを比べてる?別物な気がするんだが。
Fiber欲しい、というならわかるが。
パフォーマンス求めるならAkka使うといいかも。
情報古いが、Erlangと比べるとさすがに差がある。
ErlangはVMからチューニングしてそうだし。
http://rainyday.blog.so-net.ne.jp/2007-05-20
0558デフォルトの名無しさん
2010/05/06(木) 22:25:02ちょうどアンドロイドのコードサイズの話が
http://article.gmane.org/gmane.comp.lang.scala.internals/3408
* Large code size increase?
- we have received a report on increase in code size in an Android
application, processed using ProGuard
- It is possible that annotations (pickled Scala type signatures that
are available using reflection) are explaining some of the increases from
2.8.0.Beta1 to 2.8.0.RC1
- maybe proguard can be configured to discard them?
- New collections library may be the cause for the general 2.8 increase
- This needs to be further examined. Gilles will follow up.
0559デフォルトの名無しさん
2010/05/06(木) 23:40:48かっこいいwwww
0560デフォルトの名無しさん
2010/05/07(金) 00:12:24Scalaよりgrovyがもの凄く優れているんですね
0561デフォルトの名無しさん
2010/05/07(金) 00:36:44そもそもactorのサンプル2.8じゃ
動かないから計測不能だしFUDだろ?
0562デフォルトの名無しさん
2010/05/07(金) 01:02:30上のほう、マイナーバージョンが変わるとバイナリの
互換性が無くなるのも理由に挙がってるね
2.8だとコードの互換性もない、と
0563デフォルトの名無しさん
2010/05/07(金) 08:04:52> http://stackoverflow.com/questions/1383320/poll-what-is-stopping-you-from-switching-from-java-to-scala
2chと同じレベルのレスが並んでいるな。
0564デフォルトの名無しさん
2010/05/07(金) 16:16:09p.69のサンプルをScala2.8RC1で動かそうとしているのですが、エラーが出て進むことができません。
単純化すると以下のようなコードになります。
import scala.io.Source
Source.fromFile(args(0)).getLines
ここで、fromFileの引数の型が違うと怒られます。
error: type mismatch;
found : String
required: java.io.File
Source.fromFileにはStringを引数にとるものもあるようです
http://www.scala-lang.org/docu/files/api/scala/io/Source$object.html#fromFile%28String%29
が、こちらのメソッドを使用するにはどうすれば良いでしょうか。
あと、本の通りでは動かないというのは、2.7の頃から仕様が変更されているのでしょうか。
0565564
2010/05/07(金) 16:40:05Source.fromPath(args(0)).getLines()
なんですね。
行末の改行の扱いが変わってるっぽいですけど。
2.8では、getLinesが行セパレータseparatorを引数として取るようになっているから、そのせいだね
separatorのデフォルト値はそのプラットフォームのデフォルトの改行コードになってるみたい
0567デフォルトの名無しさん
2010/05/07(金) 20:06:27Rubyでいうところの1.8.7と1.9系みたいな
2.7.7使うのが無難。SS本もコップ本も2.8を前提にしないので、サンプルコードがそのままでは
コンパイルを通らない可能性がある。一度2.7で学んだ後、2.8に移行すること自体はそれほど
難しく無いので、安心して良いと思う
0569デフォルトの名無しさん
2010/05/07(金) 20:21:21そかーサンクス
REPLの補完にちょっと惹かれたけど、とりあえずは2.7.7で頑張ってみる
0570デフォルトの名無しさん
2010/05/07(金) 23:18:132.8でも大半動くし、動かないのを調べるだけ、本以上の
学習が身につくのに何故に、楽な方、楽な方、安全な方という
導き方をするんだろうなぁ
意味がわからん
0571デフォルトの名無しさん
2010/05/07(金) 23:21:41そんなの後からでも良いのでは。
0572デフォルトの名無しさん
2010/05/07(金) 23:56:06先ず入りやすい方法を示すのは良いやり方だと思うが。
それで「もっとやれる」と思うような人は更に別の方法を自分で採れるはずだし。
ただ今後はwebで見かけるサンプルコードなどは2.8のものが
多くなると思うのでそこらは注意が必要かも。
本のサンプルにそんなにこだわらないのなら2.8からやるのもありだと思う。
うーん。しょっぱなからくだらない点でつまづくと、それが原因で学習する意欲自体が
削がれるということがしばしばあるので、そのリスクは少ない方がいいだろうと思う。
それに、2.8はまだ安定版が出ておらず、仕様面でもまだ変更される可能性のある部分が
残っているので、(RC1ではspecialize絡みでLiftなどで不具合が発生してて、それをfixした
RC2が近いうちに出る予定)、正直言って、既に2.7を十分知っていて、2.8で導入された
機能に魅力を感じているユーザ以外にはまだあまりお勧めしたくない。
2.7→2.8の移行自体はそれほど難しくないから、後でも構わないと思う。
0574デフォルトの名無しさん
2010/05/08(土) 00:05:18>うーん。しょっぱなからくだらない点でつまづくと、それが原因で学習する意欲自体が
>削がれるということがしばしばあるので、そのリスクは少ない方がいいだろうと思う。
こうゆうのは排除でいいだろw
モンキーコード書くような連中増やすのが目的なの?
0575デフォルトの名無しさん
2010/05/08(土) 00:11:35モンキーだろうがなんだろうが、ある程度ユーザが増えないことには頭の固い上司を説得できないじゃん。
趣味でしか使わないのならそれでもいいのだろうけど。
0576デフォルトの名無しさん
2010/05/08(土) 00:16:06SS本の9章読め
アホで無知なユーザを増やすんじゃなくて
正しく利点と欠点を説明可能な技術者を着実に
増加させるのがあるべき方向だろ。
クソアプリ量産されて、クソ言語って評判が広まる方がいいの?
0577デフォルトの名無しさん
2010/05/08(土) 00:20:39これって前からある?
0578デフォルトの名無しさん
2010/05/08(土) 00:24:05>>470
0579デフォルトの名無しさん
2010/05/08(土) 00:25:06そこそこの技術者であっても、Scalaに対する学習意欲がそれほど高く無い(=
当初はそれほど時間を割くつもりが無い)場合、学習の初期段階でつまづいたら、
それがきっかけでポイされるかもしれないわけで、リスクは少ないに越したことは無いと考えてる。
>>576
アホで無知であってもとにかくユーザ増やしたい、と思ってるわけじゃないけど、
新規ユーザ向けに現時点で2.8を積極的に勧める理由が無いというのが正直なところ。
さっきの書き込みでは書き忘れたけど、2.7と2.8の間にはバイナリ互換性が無いから
2.7向けにビルドされたScala用ライブラリがそのままでは動かないのも痛いところだし。
0581デフォルトの名無しさん
2010/05/08(土) 00:30:02一気に普及すると思うよ
あぁいうのはバツグンに使いやすいもん
0582デフォルトの名無しさん
2010/05/08(土) 00:30:53それともコンパイルするまで型推論されないからIDE上では動的と大差なくてあんまり期待できない?
いや、そのサイトに移行したのはかなり最近、というかScala Daysでちょうど
Scala Eclipse Plugin開発者のMiles Sabinが移行の話をしてたと思う。
0584デフォルトの名無しさん
2010/05/08(土) 00:35:37なるほど。サンクスです
0585デフォルトの名無しさん
2010/05/08(土) 00:41:13Javaでも構文解析とかはしてるし、ScalaのIDEが型推論機構を持てばできるんじゃない?
というかコンパイラが持ってるのを使えばいいのか。
0586デフォルトの名無しさん
2010/05/08(土) 00:48:36そのへん、2.8からちゃんとやるから、Eclipseの腐れプラグインも2.8から
まともになるよーとかいう記事があった気がする。
0587デフォルトの名無しさん
2010/05/08(土) 00:49:24一時の安全、安定が本当に学習意欲に繋がるとは
考えられんし、業務でもないのにリスク回避が正しいとは
とても思えん。
日本のトップScala技術者がそう言うならこれで引き下がるか。
補完機能の安定性(変なコードに対しても補完が効くか、という意味)や充実度、という意味で
まだまだだけど、現時点でも補完はだいぶ賢くなってきてる。たとえば、
class RichListDouble(list: List[Double]) {
def average: Double = list.foldLeft(0.0)(_+_)
}
implicit def enrichList(list: List[Double]): RichListDouble
= new RichListDouble(list)
とか書くと、
List(1.0, 2.0, 3.0).avとすると、averageが補完候補に出てくるけど、
List("A", "B", "C").avとすると、補完候補に出てこないという具合に(Scala Eclipse Plugin 2.8の場合)。
ただ、ちょっと凝ったソースコードにすると補完機能がうまく働かなかったりするので、安定性はまだまだ。
ビルダー部分は2.7のときに比べてかなり安定して働くようになったから、本格的に使い始めてるけど。
0589デフォルトの名無しさん
2010/05/08(土) 00:52:052.8を待たないと無理なのかしら
みなさんどんな環境でスカラってますか?
いや、日本のトップScala技術者というわけではないですし、コーディングスキル
も全然高く無いです。あくまでScalaの言語仕様については(日本では)詳しいというだけです。
というのはともかくとして、リスク回避というのは、サンプルコード動かねー、とか
scaladoc2のAPIリファレンスが読みづれー、とか、正直言って些細な部分でつまづかれて、
Scala使えねーという評判が広まるのは避けたいなあ、というのもあります。
2.8安定版が出て、仕様がFIXされた後なら状況はまた別ですけど。
0591デフォルトの名無しさん
2010/05/08(土) 01:06:30コンパイラのAST(抽象構文木)パーサとかを流用すればすぐ実装できるんじゃ、
とか思ってしまうんだけど、技術的にどのへんがチャレンジになってるんだろ?
単に内部APIがきちんと整備されてないだけ?
自己レス。うぎゃ。averageの定義が平均じゃなくて合計値になってるorz
summationとかに適当に読み換えてください。
implicit conversionを考慮に入れた補完はかなりチャレンジングだと思う。
implicit conversionに関する規則って結構複雑で、パーサ持ってればすぐ実装
できる、という程簡単ではない。その辺を一発で処理してくれるAPIをコンパイラが
持ってなければ自前で実装しなけりゃいけない…(ひょっとしたら持ってるかも)。
C#のExtension Methodなんかも結構補完大変だと思うんだけど、Visual Studioは
よく補完実装してるなーとか思ったことがある。
0594デフォルトの名無しさん
2010/05/08(土) 01:26:57なるほど。
その辺が完璧に処理できるようになると強力なウリになるんだけどなぁ。
職場がテストコードにGroovyを導入してるんだけど、便利は便利なんだが、一方でIDEの強力さを思い知ったりしている。
Groovyは別に用途があると思うけど、従来のJavaの位置のリプレースとして有望なのは、やはりScalaじゃないかな、と。
0595デフォルトの名無しさん
2010/05/08(土) 01:39:12NetBeansを使うばあいは、2.7のプラグインはNetBeans6.7までにしか
対応して無いはずなので注意ね。
NetBeans6.8以降は2.8のプラグインしか対応して無い。
個人的にNetBeansが好きなのだが、将来性の問題からオススメしづらい・・・
IntelliJはかなり本気でScalaに取り組んでるみたいだし
Eclipsはコミュも大きく、Scala開発元も押してる(?)っぽいし、
プラグイン自体にスポンサーも付いてるみたい
NetBeansは個人がClojureやErlangプラグインと一緒に開発してるもので
仕事忙しくてあまり手が回せないみたいだし
なによりOracleがSun買収後もEclipsを押していくと明言してるから
NetBeans自体がそもそもやばい気が
0596デフォルトの名無しさん
2010/05/08(土) 01:51:000597デフォルトの名無しさん
2010/05/08(土) 01:52:140598デフォルトの名無しさん
2010/05/08(土) 01:55:42ほんとに?そんな話初めて聞いたけど…
0599デフォルトの名無しさん
2010/05/08(土) 02:05:04とりあえずMoeclipseでググるといいと思うよ。
0600デフォルトの名無しさん
2010/05/08(土) 06:58:230601デフォルトの名無しさん
2010/05/08(土) 08:56:100602デフォルトの名無しさん
2010/05/08(土) 11:06:540603デフォルトの名無しさん
2010/05/08(土) 11:38:37traitに対してextendsする場合はそのtraitを継承するっていう理解でいいですか
0604デフォルトの名無しさん
2010/05/08(土) 13:08:17まあ別に見られても構わないんですけど、自分的には別に喧嘩してるつもりはなくて
普通に論争してるだけのつもりなんで。念のため。
# 正直、今回の自分の論については、ショボい例以外で良いのを
# 思いつかないのは事実なので、主張としては弱いよなーとか思ってたり。
0606デフォルトの名無しさん
2010/05/08(土) 13:57:470607デフォルトの名無しさん
2010/05/08(土) 15:11:01生産性、と言い換えてもいいんだが、これも恣意的に使える言葉だし。
0608デフォルトの名無しさん
2010/05/08(土) 15:20:470609デフォルトの名無しさん
2010/05/08(土) 15:28:30Scalaと比較して?
あのmatzと論争してんのか、すげーなw
0610デフォルトの名無しさん
2010/05/08(土) 15:34:470611デフォルトの名無しさん
2010/05/08(土) 15:36:000612デフォルトの名無しさん
2010/05/08(土) 15:38:21Rubyはありすぎて書ききれない
0613デフォルトの名無しさん
2010/05/08(土) 15:56:56http://dev.ariel-networks.com/articles/workshop/ruby/
0614デフォルトの名無しさん
2010/05/08(土) 15:58:35まさかRoRが出てきてあの言語が流行るとは思わなかったわ
0615デフォルトの名無しさん
2010/05/08(土) 16:04:050616デフォルトの名無しさん
2010/05/08(土) 16:08:37型チェックがないととんでもないアホな単純ミスを見逃したりする。しかもテストは
数が多いがコンパイルチェック以下みたいなレベルのばっかりだったりとか。
Scalaには本当にがんばってほしい。流行すれば同じような境遇の人には福音となるはず。
0617デフォルトの名無しさん
2010/05/08(土) 16:12:010618デフォルトの名無しさん
2010/05/08(土) 16:14:150619デフォルトの名無しさん
2010/05/08(土) 16:15:20もちろんその通りだが、うみやすい言語とそうじゃない言語はあると思う
って昔matzがPHPをdisってる時に言ってました
0620デフォルトの名無しさん
2010/05/08(土) 16:19:04CでもJavaでも意識してタイプセーフにしないとどっちにしろ意味ないけど
もちろんScalaも
0621デフォルトの名無しさん
2010/05/08(土) 16:20:10というかむしろRubyの方が生みやすい気もする
0622デフォルトの名無しさん
2010/05/08(土) 16:24:43あ、一応補足しとくと>>619でmatzが言った時は「PHPはセキュリティ的に問題のあるコードを生みやすい」って意味で使ってたから、バグとは厳密には違う
まぁ「書く人次第」という主張に対する反論としては大差ないけどね
0623デフォルトの名無しさん
2010/05/08(土) 16:27:22PHPで問題出す奴はJSPで書いてもeRubyで書いても同じ事するだろ
0624デフォルトの名無しさん
2010/05/08(土) 16:29:48Rubyは今まで初心者がいきなり使うことがなかったからセキュリティ問題が発生しづらかっただけで
初心者をガンガン受け入れてきたPHPとはプログラマの質が違うんだから
言語仕様よりコミュニティの方針で絞っただけに過ぎないと思う
0625デフォルトの名無しさん
2010/05/08(土) 17:34:01Scalaの方が遥かに優れているし、競争力もあがるのに
0626デフォルトの名無しさん
2010/05/08(土) 17:39:290627デフォルトの名無しさん
2010/05/08(土) 17:40:18某自治体の職員曰く、国産言語だから
金出すって言ってたなぁ。それ以上よくわからないし
聞かれても、書類のとおりとしか言えないってさ
そんなんだから何時までたっても
バカITが続くのだろうなぁ
0628デフォルトの名無しさん
2010/05/08(土) 17:52:44http://pc12.2ch.net/test/read.cgi/tech/1249737531/l50
0629デフォルトの名無しさん
2010/05/08(土) 18:37:070630デフォルトの名無しさん
2010/05/08(土) 19:07:32JavaからRubyへ...そしてScalaへ...
っていう節があるね。
0631デフォルトの名無しさん
2010/05/08(土) 19:12:28Scalaの立ち位置は「ライトウェイトJava」でしょ。
0632デフォルトの名無しさん
2010/05/08(土) 19:12:450633デフォルトの名無しさん
2010/05/08(土) 19:13:42どの程度移行したんだろう
0634デフォルトの名無しさん
2010/05/08(土) 19:21:44そういうことってどこに書いてあるさ?
>>633
バックエンドを全部。フロントエンドは今もRails
0635デフォルトの名無しさん
2010/05/08(土) 19:21:58100%書き直し
0636デフォルトの名無しさん
2010/05/08(土) 19:33:580637デフォルトの名無しさん
2010/05/08(土) 19:37:09本人のblogやインタビュー記事。
本(Beginning Scala)にも書いてたかな。
0638デフォルトの名無しさん
2010/05/08(土) 19:37:590639デフォルトの名無しさん
2010/05/08(土) 21:11:570640デフォルトの名無しさん
2010/05/08(土) 21:16:15上のほうのコップ本でしょ?
0641デフォルトの名無しさん
2010/05/08(土) 21:19:100642デフォルトの名無しさん
2010/05/08(土) 21:40:12liftってubuntuの上にインストールすることってできないんでしょうか??
色々調べてもWindowsにインストールしてる記事しか見つけられませんでした。
もしかしてLiftってEclipseと一緒に使うものなんでしょうか?
教えていただけると幸いです。
0643デフォルトの名無しさん
2010/05/08(土) 21:43:22コップ本が難しかったら、SS本に手を出す価値はあると思う。
SS本は名前の通り入門本なので、入門レベルを乗り越えたら不要になるタイプの本。
0644デフォルトの名無しさん
2010/05/08(土) 21:45:20liftはmavenから使うのが普通だと思うけど
0645デフォルトの名無しさん
2010/05/08(土) 21:46:42なるほど、ありがとう
0646642
2010/05/08(土) 22:01:28レスありがとうございます。
すいません、自分JavaやったことなくてMavenもよくわかってないのですが、gitみたいなもんですかね?
ずっとLAMP環境でやってきましたので、ターミナルでvimとか使ってプログラミングするのに慣れてるんですが、
scala/liftではあまりそういうことができない感じなのでしょうか?Windowsで開発している情報ばかり見るもので・・
ちなみにEclipseはC++の開発で使ったことがあるぐらいです。
0647デフォルトの名無しさん
2010/05/08(土) 22:02:290648デフォルトの名無しさん
2010/05/08(土) 22:10:21gitはバージョン管理。
Mavenはごちゃ混ぜになっちゃったけど元はライブラリ管理のものだったはず
0649デフォルトの名無しさん
2010/05/08(土) 22:15:46Railsやってたのなら、Mavenは rake + rubygems みたいなものと思えばいいんじゃないかと。
0650デフォルトの名無しさん
2010/05/08(土) 22:54:42むしろ Ubuntu/Linux のほうが Windows より簡単にできるよ
ターミナルでやるのに慣れてるならなおさら
0651デフォルトの名無しさん
2010/05/08(土) 23:09:13誰かログ残ってる人トゥギャっておいてくれよ
0652デフォルトの名無しさん
2010/05/08(土) 23:29:10IDEも含めれば静的型付けの恩恵はわかりやすいんだけどね
パターンマッチを別の問題にしてるのは紳士的だねw
俺なら真っ先に言いたくなるけど
0653デフォルトの名無しさん
2010/05/08(土) 23:50:490654デフォルトの名無しさん
2010/05/08(土) 23:52:570655デフォルトの名無しさん
2010/05/08(土) 23:53:26まとめた上で誰か解説たのむw
最近Scalaの注目度高いからやればホットエントリー入り間違いないぞ!!
0656デフォルトの名無しさん
2010/05/08(土) 23:56:400657デフォルトの名無しさん
2010/05/08(土) 23:59:34ここのスレ的にはGAE/JをScalaでやるにきまってる
0658デフォルトの名無しさん
2010/05/09(日) 00:01:410659デフォルトの名無しさん
2010/05/09(日) 00:37:00そういう意味じゃPHP/Perlにはもちろん、まだまだRuby, Pythonにも遠く及ばないか
0660デフォルトの名無しさん
2010/05/09(日) 00:40:080661デフォルトの名無しさん
2010/05/09(日) 00:42:48鯖屋のスキル不足
0662デフォルトの名無しさん
2010/05/09(日) 01:03:51(というかVPSでも512MBくらいないとまともに使えない)からじゃないかなぁ
CGI的に使うならもっとメモリ少なくても余裕なんだけどねぇ
mod_javaの開発が止まったのが悔やまれる
非ServletだとJDK入ってるのは海外のレン鯖でもDreamHostとか一部だけだな
0663デフォルトの名無しさん
2010/05/09(日) 01:16:05どうせ作り直しならScalaに乗り換えようかな
0664デフォルトの名無しさん
2010/05/09(日) 01:20:44メジャーバージョンアップがあってもPHP4→5くらいの修正で済むようにならんと厳しいなやっぱ
0665デフォルトの名無しさん
2010/05/09(日) 01:21:31あれが出来てれば、Scalaもそっちで作られてたかもしれんし。
0666デフォルトの名無しさん
2010/05/09(日) 01:27:14でも割としっかりしてるからtwitterとかforsquareみたいな大きいとこが採用したんじゃないの?
0667デフォルトの名無しさん
2010/05/09(日) 01:29:090668デフォルトの名無しさん
2010/05/09(日) 01:29:49Yahoo!JapanなんてFreeBSDやMySQLですら独自に作り替えちゃってるし
0669デフォルトの名無しさん
2010/05/09(日) 01:50:48普通、新しい言語のライブラリって、IO系から固めないか?
0670デフォルトの名無しさん
2010/05/09(日) 01:57:480671642
2010/05/09(日) 02:03:55とりあえずubuntuにscala/maven入れてhelloWorldのところまではいけました。
これから色々いじってこうと思ってるんですが、ちなみにliftはRailsみたいにRestを意識した感じではないのですかね?
「lift restful」な感じでググってもあまり出てこなかったので。
0672デフォルトの名無しさん
2010/05/09(日) 02:13:29Javaのライブラリで事足りたからじゃね?
0673デフォルトの名無しさん
2010/05/09(日) 03:06:27って話無かったっけ?もうOKなのかな?
コレクションライブラリを一番優先してる、という印象を受けるね。Scalaの場合。
2.8のコレクションライブラリなんか、良くも悪くも特異な設計になってるし。
0675デフォルトの名無しさん
2010/05/09(日) 05:02:59def hoge {
val foo = if (boolValue) (x, y) else (x, y)
ここ
と、末尾が)で終わる式(?)の次行が強制でインデント(「ここ」の位置にくる)
されてまう気がするけど、なんとかならないもんかな?
0676デフォルトの名無しさん
2010/05/09(日) 09:04:010677デフォルトの名無しさん
2010/05/09(日) 09:07:32使えない。だから流行らないんだよ
0678デフォルトの名無しさん
2010/05/09(日) 13:49:16教えてくだしあ><
そこまでいけない・・
0679デフォルトの名無しさん
2010/05/09(日) 19:58:59タプル作る演算子なんですか?
たぶんパーザコンビネータの~演算子のことだと思うけど、ちょっと違う
~演算子は、「パーズ結果として~[T, U]を返すパーザ」であるParser[~[T, U]]型のオブジェクトを
返す(Tはレシーバの型で、Uが引数の型ね)
~[T, U]はタプルとは別の型だけど、意味的には(T, U)と似たようなものだと思って間違いない
0681デフォルトの名無しさん
2010/05/09(日) 20:28:36Parser[~[T, U]]というのは
例えば、a ~ b ~ cって返すと入れ子
になるってことですかね?
そういうこと。
aがParser[A],bがParser[B],cがParser[C]だったら、a ~ b ~ cの型は
Parser[~[~[A, B], C]になる。パーズ結果の値を加工したいときは、
a ~ b ~ c ^^ { case va ~ vb ~ vc => .... } みたいにパターンマッチで取り出せる
ちなみに、タプルでなくわざわざ~というデータ型を定義したのは、パターンマッチ
でパターンがネストしたときの利便性と、~演算子と同じ記号使いたかったから
じゃないかと思う。
0683デフォルトの名無しさん
2010/05/09(日) 23:15:40http://d.hatena.ne.jp/hkweb/20100508
0684デフォルトの名無しさん
2010/05/10(月) 00:14:07コップ本があればいらないかな
0685デフォルトの名無しさん
2010/05/10(月) 00:35:490686デフォルトの名無しさん
2010/05/10(月) 00:37:210687デフォルトの名無しさん
2010/05/10(月) 00:43:52あとこれから出るので期待できそうなのとかあるのかな
0688デフォルトの名無しさん
2010/05/10(月) 00:53:370689デフォルトの名無しさん
2010/05/10(月) 01:30:420690デフォルトの名無しさん
2010/05/10(月) 21:36:14Rubyだったら
y0, y1 = x0+1 , x0*x1+2
って感じ。
0691デフォルトの名無しさん
2010/05/10(月) 22:12:37val (a, b) = (1, 2)
これってパターンマッチと同じ仕組みなので、
val Some(a) = Some(1)
とかもできる
0692デフォルトの名無しさん
2010/05/10(月) 22:15:47その書き方で正規表現やってるのを見たときは、ちょっと衝撃だった。
0693デフォルトの名無しさん
2010/05/10(月) 22:20:28いい言語だよねw
0694デフォルトの名無しさん
2010/05/10(月) 22:23:43下の例がよくわからない
生成されたSomeオブジェクトにSomeオブジェクトを突っ込んでるように見えるけど…
どなたか素人にもわかるように説明してもらえませんか
0695デフォルトの名無しさん
2010/05/10(月) 22:28:08詳しくはScalaのパターンマッチについて調べるといいよ
0696デフォルトの名無しさん
2010/05/10(月) 22:41:46詳しく説明もできない
知ったかは消えろよw
0697デフォルトの名無しさん
2010/05/10(月) 22:47:082chって頭がおかしいやつばっかだな
0698デフォルトの名無しさん
2010/05/10(月) 22:53:540699デフォルトの名無しさん
2010/05/10(月) 22:59:33本家でもバグてんこ盛りで使えないだろって
避難が凄いみたい
0700デフォルトの名無しさん
2010/05/11(火) 01:06:53>>701の言ってるのがRC2のことだとすると、確かにそんな情報は見当たらないので
変だけど(つか、RC2出たばかりだし)、たぶんRC1のことだと思う。RC1では、
specialization絡みでバグがあってLiftのテストケースが失敗するとか、specsの挙動
もなんかおかしいとかそういう話を見かけた覚えがある。RC2はその辺のバグを軒並み
フィックスしたバージョンになってる(たぶん)。
0703デフォルトの名無しさん
2010/05/11(火) 16:43:15TraversableのflatMapも
0704デフォルトの名無しさん
2010/05/11(火) 22:51:59そんな理由で人に勧めるなんて・・・
0705デフォルトの名無しさん
2010/05/11(火) 23:05:03それまではruby railsを使っていたんだから
ruby railsを薦めるべき
0706デフォルトの名無しさん
2010/05/11(火) 23:17:370707デフォルトの名無しさん
2010/05/11(火) 23:18:090708デフォルトの名無しさん
2010/05/11(火) 23:23:520709デフォルトの名無しさん
2010/05/11(火) 23:52:13今、人に進めるのにこれ以上ない宣伝文句じゃね
ところでScalaを学ぶ前に知っておくと特に役立つ言語って、Javaは確定として、残りはRubyとかHaskellあたりかな?
0710704
2010/05/11(火) 23:54:41オレもRORについては言及したんだが、そいつもうSS本買っちゃって鼻息
荒いのなんのって・・・ んで、「オマエもやれ」って・・・
この友人には言ってないんだけど、オレプライベートではHaskellerなんだよね・・・
0711デフォルトの名無しさん
2010/05/12(水) 00:03:030712デフォルトの名無しさん
2010/05/12(水) 00:06:440713デフォルトの名無しさん
2010/05/12(水) 00:22:05であるときに自分の直系のテキストのみ("abcd"だけ)を取得したいんだけど
xml \\ "aa" text では abcd<dd>eeee</dd>
パターンマッチで
xml match { case <aa>{abc}<dd>{dd}</dd></aa> => println(abc) }
とタグを全て定義してやれば、取得は出来るんだけど
この方法しか無いんでしょうか
0714デフォルトの名無しさん
2010/05/12(水) 00:39:260715デフォルトの名無しさん
2010/05/12(水) 00:50:51xml.child.filter(_.getClass == classOf[scala.xml.Text])
0716デフォルトの名無しさん
2010/05/12(水) 01:06:270717デフォルトの名無しさん
2010/05/12(水) 01:11:40ムギュ・・その通り・・・
xml.child.filter(_.isInstanceOf[scala.xml.Text])
0718デフォルトの名無しさん
2010/05/12(水) 01:30:46文法的にはどうなってんだ、これ。
文法的にはAny型に所属している普通のメソッド(単に型パラメータを取る=ジェネリックというだけ)。
内部的にはコンパイラが特別扱いしてinstanceof命令に変換してる
0720デフォルトの名無しさん
2010/05/12(水) 02:19:12しかし、
List(1).isInstanceOf[List[String]]
が true になるのは、やはりダサいな。
0721デフォルトの名無しさん
2010/05/12(水) 02:49:17ダサい Java との相互運用性を考えれば仕方あるまい
0722デフォルトの名無しさん
2010/05/12(水) 08:11:130723デフォルトの名無しさん
2010/05/12(水) 18:26:050724デフォルトの名無しさん
2010/05/12(水) 20:49:19エンタープライズはjavaのままだろうし。
schemeやgoなどがもいまいちなのは、サクラインターネット月1000円レベルでwebアプリがかけないから。
皆さんはどう思います?
0725デフォルトの名無しさん
2010/05/12(水) 20:59:03GAEやEC2なんかで使えれば無問題
0726デフォルトの名無しさん
2010/05/12(水) 21:01:090727デフォルトの名無しさん
2010/05/12(水) 21:24:210728デフォルトの名無しさん
2010/05/12(水) 21:29:43値段やホスティングしてるとこの知名度は重要かもね
0729デフォルトの名無しさん
2010/05/12(水) 22:15:550730デフォルトの名無しさん
2010/05/12(水) 23:26:110731デフォルトの名無しさん
2010/05/13(木) 09:32:04App Engineって完全なJVMじゃないから、無理かとおもってた。
0732デフォルトの名無しさん
2010/05/13(木) 09:35:31ec2は魅力的だが高くつきそうだね。
0733デフォルトの名無しさん
2010/05/13(木) 09:51:54テキスト・ファイルを、別名のファイル(fname.txt)で表示するプログラムを作成せよ。ただし、
ファイル名のfnameの部分は共通にせよ。
0734デフォルトの名無しさん
2010/05/13(木) 09:52:53テキスト・ファイルを、別名のファイル(fname.txt)で表示するプログラムを作成せよ。ただし、
ファイル名のfnameの部分は共通にせよ。
上を教えてください。
お願いします。
0735デフォルトの名無しさん
2010/05/13(木) 10:06:300736デフォルトの名無しさん
2010/05/13(木) 10:15:47思う思わないの問題じゃないと思うけどな
そこそこのサイトで実運用に耐えられなきゃ単なる技術者のオナニーだし
0737デフォルトの名無しさん
2010/05/13(木) 10:37:00宿題です。
まったく分からなくて困ってます。
0738デフォルトの名無しさん
2010/05/13(木) 10:39:350739デフォルトの名無しさん
2010/05/13(木) 11:37:55どこのスレにいけば教えてもらえますか?
0740デフォルトの名無しさん
2010/05/13(木) 11:49:24そんなものを教える学校があったのかと驚いたもので
違うなら該当プログラミング言語のスレへどうぞ
0741デフォルトの名無しさん
2010/05/13(木) 12:05:200742デフォルトの名無しさん
2010/05/13(木) 12:09:490743デフォルトの名無しさん
2010/05/13(木) 12:24:200744デフォルトの名無しさん
2010/05/13(木) 13:20:08釣られちゃたのだが、不安定の根拠ってある?
思う思わないの話し?
0745デフォルトの名無しさん
2010/05/13(木) 13:36:53全員工作員だろうけど
0746デフォルトの名無しさん
2010/05/13(木) 13:48:11たかだか道具の一つにそこまで思い入れ持つってのも凄い事だよな
今、Scalaとか弄ってる人間で選択肢を増やすって考え方以外は本物だと思うんだが
0747デフォルトの名無しさん
2010/05/13(木) 16:28:42いろんなクラスでやトレイトで[MyType <: Table[MyType]]型引数を受け取ってて
本には該当のテーブルで定義されたフィールドだけがクエリーに含まれることを保証しますって書いてあるけど
ほとんどTable内で定義されててパス依存型になってるので別につけなくても保証できてない?
0748デフォルトの名無しさん
2010/05/13(木) 16:52:430749デフォルトの名無しさん
2010/05/13(木) 18:00:39で、古いのを見ると、kなんとかさんのこと書いてあったけど、あれまずいんじゃないかな。
あのひと、今ひがさんのツイートをさらしものにしてるでしょ。
「kなんとかさん」とか書いてるのも見つかると同じようにさらされそうだから、火種になりそうなのは消したほうがいいんじゃない?老婆心ながら。
0750デフォルトの名無しさん
2010/05/13(木) 18:28:52なんか勘違いしてるだろ
不安定なのはScalaじゃなくGAEだろ
直前の流れも読もうな
0751デフォルトの名無しさん
2010/05/13(木) 19:39:13言ってる意味がわからないよ婆さん
0752デフォルトの名無しさん
2010/05/13(木) 19:43:22GAEが不安定の件は、どのレベルの安定性を求めているのかによる。
勘定系に使えないって話か、
データストアが時々タイムアウト例外を投げるのが許せないのか、
もっと根本的に不安定だと言ってるのか。
0753デフォルトの名無しさん
2010/05/13(木) 21:09:30本物かw
どっちが不安定とかでなんでそんなにこだわれるの?ScalaProject参加してんの?
お前みたいなの以外で今Scala触ってるのは不安定かどうかなんてのは自分で検証・判断出来るレベルって事が言いたかっただけ。
0754デフォルトの名無しさん
2010/05/13(木) 21:39:27巷の評判が不安定だってんなら別にそれで構わんだろ
0755デフォルトの名無しさん
2010/05/13(木) 21:40:290756デフォルトの名無しさん
2010/05/13(木) 21:41:530757デフォルトの名無しさん
2010/05/13(木) 21:46:31あるなら改善要求でも出せばい良いじゃん。
0758デフォルトの名無しさん
2010/05/13(木) 21:58:01Scalaを流行らせるためには安定したクラウド必要だね
でもGAEまだまだだねってだけの話なんだから
0759デフォルトの名無しさん
2010/05/13(木) 22:12:260760デフォルトの名無しさん
2010/05/13(木) 22:25:470761デフォルトの名無しさん
2010/05/13(木) 22:33:230762デフォルトの名無しさん
2010/05/13(木) 22:33:24Google AppEngine 3アプ目
http://pc11.2ch.net/test/read.cgi/php/1267057923/l50
こっちの方がもりあがってるのでこちらに書き込み。
>>752
勘定系に使えない理由を教えていただけないでしょうか。
データストアのタイムアウトはまー色々対処方法があるのでいいが、
根本的に不安定というのがあるならば、教えてほしいです。
社内システムをscala On GAE/Jで作ろうとしてるので
どのようなリスクがあるのかあらかじめ知っておきたいのです。
0763デフォルトの名無しさん
2010/05/13(木) 22:34:56>>761の仰る通り、こちらで書くのはおかしいので、
Google AppEngine 3アプ目
http://pc11.2ch.net/test/read.cgi/php/1267057923/l50
に書きます。
0764デフォルトの名無しさん
2010/05/13(木) 22:36:460765デフォルトの名無しさん
2010/05/13(木) 22:41:18それともPHPみたいに不完全?
0766デフォルトの名無しさん
2010/05/13(木) 23:03:590767デフォルトの名無しさん
2010/05/13(木) 23:06:27昔見た時(2.7.?)は、Actorなどなかった、
仕組み上JavaAPIはつかえないので、JavaAPI使ってるScalaで書いたライブラリも使えない
0768デフォルトの名無しさん
2010/05/13(木) 23:07:46http://twitter.com/moyu_w/statuses/13250867964
http://ameblo.jp/rarapima/entry-10517976394.html
わりと評判悪いかもしれん。
かくいう俺もSlim3試して重いなぁって思って放置したけど。
0769デフォルトの名無しさん
2010/05/13(木) 23:22:57完全なOOPLなのにさらにFPLならすごいなと思って聞いてみた
Rubyがでたころは1も+もすべてオブジェクトだよすごいだろ?って登場してきたなぁと
0770デフォルトの名無しさん
2010/05/13(木) 23:26:07今日は一人変なのが紛れ込んでますね
0771デフォルトの名無しさん
2010/05/13(木) 23:30:22ありがとう。
Javaのクラスライブラリが使えず
書き手もJavaをほとんど知らないとなるとあまりうまみがないってことなのかな。
言語が面白そうでJava版をちょっと触ってはいるけど
PowerShellの代替にはならないか。
0772デフォルトの名無しさん
2010/05/13(木) 23:40:152chが情報源と同レベルだよな
0773デフォルトの名無しさん
2010/05/14(金) 00:03:34>思う思わないの問題じゃないと思うけどな
とか人を見下した発言しておいて、不安定の根拠がtwitter発言かよ。
0774デフォルトの名無しさん
2010/05/14(金) 00:10:210775デフォルトの名無しさん
2010/05/14(金) 00:11:20呼び出せないクラスが大量に量産されている
2.8RCは安定しないどころか、どんどんバグが量産されていて
もう手がつけられない。
今後どうなるかは自明な状態
0776デフォルトの名無しさん
2010/05/14(金) 00:15:52え?これの事じゃないよな?
http://ameblo.jp/rarapima/entry-10517976394.html
いくら2chでもム板での「詳しく」はさすがにtweetと同じレベルじゃないでしょw
0777デフォルトの名無しさん
2010/05/14(金) 00:17:17発言した本人に尋ねられるじゃん。
0778デフォルトの名無しさん
2010/05/14(金) 00:20:03不安定じゃないじゃん
重いって言ってるだけじゃん
馬鹿なの?死ぬの?
0779デフォルトの名無しさん
2010/05/14(金) 00:21:45Javaクラウドをけなして普通のサーバで動くPHP最強!って結論づけるのが目的
0780デフォルトの名無しさん
2010/05/14(金) 00:22:500781デフォルトの名無しさん
2010/05/14(金) 00:24:16相変わらず必死だなw
PHP使ってると頭もよわくなるね?
0782デフォルトの名無しさん
2010/05/14(金) 00:27:17全然つかいものにならないし
0783デフォルトの名無しさん
2010/05/14(金) 00:31:130784デフォルトの名無しさん
2010/05/14(金) 00:33:26PHPより全然マシ
0785デフォルトの名無しさん
2010/05/14(金) 00:34:47PHPは簡単で高機能な言語だろ
Scalaなんて何が出きるのw?
バグだらけで何もできないし
0786デフォルトの名無しさん
2010/05/14(金) 00:35:41むしろ都会だったら
774「GAE不安定なんです。」
上司「何が〜?」
774「まかりません」
上司「まさか調べてないの?おーい○○、GAEおかしいらしいから事象だけ確認してそのままm引き継いで」
774「あのー僕何やれば良いですか?」
上司「辞表でも書いてて」
0787デフォルトの名無しさん
2010/05/14(金) 00:39:30採用を検討するのでは?
最初にGAEありきの会社なんてないよ。
0788デフォルトの名無しさん
2010/05/14(金) 00:39:54ほら釣れたw
0789デフォルトの名無しさん
2010/05/14(金) 00:43:38Scalaが原因でGAEが不安定になることが多いね
やっぱりJavaのクラウドなんて無理なんだよ
0790デフォルトの名無しさん
2010/05/14(金) 00:49:03とうとう我慢できずに本性あらわしたか
やっぱScalaアンチじか
0791デフォルトの名無しさん
2010/05/14(金) 01:06:130792デフォルトの名無しさん
2010/05/14(金) 01:08:47GAEはスレ違いだし
0793デフォルトの名無しさん
2010/05/14(金) 01:09:43挙動不明のバグが乱発するんだけど
これはGAEの問題じゃないでしょ
0794デフォルトの名無しさん
2010/05/14(金) 01:11:52頭おかしいのか?
0795デフォルトの名無しさん
2010/05/14(金) 01:13:250796デフォルトの名無しさん
2010/05/14(金) 01:24:490797デフォルトの名無しさん
2010/05/14(金) 01:49:090798デフォルトの名無しさん
2010/05/14(金) 03:37:23って言ってる人を見かけたんだけど、そういうのってできるもんなのかな
もちろん今のScalaでは無理なんだけど、そういう拡張って可能なのかな
0799デフォルトの名無しさん
2010/05/14(金) 07:20:38http://stackoverflow.com/questions/1762843/why-doesnt-scala-source-close-the-underlying-inputstream
Scala.io._ はXMLやコンパイラの為のもので、良いデザインではない。
でも2.8では良くなってる、だそうな。
0800デフォルトの名無しさん
2010/05/14(金) 08:08:47まぁ、GAEスレでやれって話だな。
0801デフォルトの名無しさん
2010/05/14(金) 08:19:20強烈なスケールアウト特性を手に入れる、という選択をしている。
「不安定」なんじゃなくて、最初からアーキテクチャ的なトレードオフがあるだけ。
タダだからレン鯖の代わりに使おう、くらいの心積もりなら、素直にレン鯖を使った方がいいこともある。
この辺は解説してるページや本がいくらでもあるから、後はググれ。
0802デフォルトの名無しさん
2010/05/14(金) 08:30:05Scalaの普及に使いづらいよねってのが最初の話じゃね?
Javaだって初期は、WebLogicが重いせいでJavaは重いって評価になって
長年不名誉な評価を受ける事になったんだしさ。
なのに、GAEのマイナス評価に過剰反応する奴がいたり、
しまいにはPHPと戦う奴が出てきたり。
0803デフォルトの名無しさん
2010/05/14(金) 08:32:180804デフォルトの名無しさん
2010/05/14(金) 08:46:54なんか重いなんか不安定って感じで
終わっちゃうだろうしなぁ確かに
既存のレンタルサーバだってそのサーバが重い原因を調べて使い続けるより
みんなすぐ乗り換えちゃうし
0805デフォルトの名無しさん
2010/05/14(金) 09:15:52となるとGAEでScaleを使いやすくしてやれば、普及させることができそうだね。
Googleを宣伝したい訳ではなく、このご時世、無料というのはかなり利点だと思う。
豊富な、日本語の事例や技術情報が必要ですね。事例はともかく、技術情報ならこれから頑張れば俺にも出せそうだ。
0806デフォルトの名無しさん
2010/05/14(金) 09:26:15だから荒れるのでは
0807デフォルトの名無しさん
2010/05/14(金) 09:45:39Scala(Java)って気軽に使えるレン鯖ないからたぶん普及しないよね
↓
GAEでいいじゃん
↓
不安定じゃん
↓
はぁ?クラウド系はそういうもんだろ
↓
じゃやっぱGAEでいいね。で、普及させるにはScala+GAEの日本語情報が必要だね ←イマココ
0808デフォルトの名無しさん
2010/05/14(金) 10:09:27開発した方がいいんじゃない?
0809デフォルトの名無しさん
2010/05/14(金) 10:44:190810デフォルトの名無しさん
2010/05/14(金) 10:45:59へー。
今後は、これを使えばいいって感じになりそうなのか。
http://github.com/scala-incubator/scala-io
現時点での完成度はどんなもんなんだろ?
0811デフォルトの名無しさん
2010/05/14(金) 11:30:26既存のレン鯖のように、より高い金払えばもっといいプランを選べるってのならともかく
GAE用に作っちゃうと移転時には修正が必要になる
研究者やサンデープログラマ増やしたいならGAEでいいかもしれんが
ビジネスユーザを意識するからVPSでTomcatの方が現実的
0812デフォルトの名無しさん
2010/05/14(金) 13:25:250813デフォルトの名無しさん
2010/05/14(金) 13:39:05あと、サンデープログラマーも少ないマイナーな言語をエンタープライズで採用しないよね。保守やる人が限られてくるからね。
これは主観だけど今のところエンタープライズは考えなくていいんじゃない。目標はベンチャー事例狙いへの啓蒙で。
意外とApp Engineやったほうがエンタープライズへの近道かもよ。
0814デフォルトの名無しさん
2010/05/14(金) 14:21:070815デフォルトの名無しさん
2010/05/14(金) 15:23:570816デフォルトの名無しさん
2010/05/14(金) 15:34:340817デフォルトの名無しさん
2010/05/14(金) 23:37:160818デフォルトの名無しさん
2010/05/14(金) 23:38:57いろいろとGAE特有のノウハウが必要なのは確かなので、
言語習得用のプラットフォームとしていいかと言われると微妙だな。
無論、本格的なGAEアプリをScalaで、というのは可能性があると思うぞ。
0819デフォルトの名無しさん
2010/05/15(土) 00:04:51起動に数秒かかるからワンライナーだとあんまり向いてない
2.8は2.7よりさらに重い
気になるなら起動済REPLに投げるなど必要
0820デフォルトの名無しさん
2010/05/15(土) 00:20:15レスサンクス
できることはできるんだね
Rubyとどっち覚えようか迷ってた
Winで使う場合はRubyは使いづらいってよくきくけど、Scalaはそんなことない?
0821デフォルトの名無しさん
2010/05/15(土) 00:43:17一人こだわってるお子様がいるが、押すのも貶すのも他所でやってくださいって感じ
0822デフォルトの名無しさん
2010/05/15(土) 00:45:580823デフォルトの名無しさん
2010/05/15(土) 00:52:140824デフォルトの名無しさん
2010/05/15(土) 01:24:180825デフォルトの名無しさん
2010/05/15(土) 01:52:23流行らないように誘導しようとしてるんだろ。
もし流行ったらそいつは世間において行かれることになるからなw
0826デフォルトの名無しさん
2010/05/15(土) 02:40:360827デフォルトの名無しさん
2010/05/15(土) 04:16:19無料なんだし、やらない奴は意味がわからない。
0828デフォルトの名無しさん
2010/05/15(土) 04:41:010829デフォルトの名無しさん
2010/05/15(土) 10:22:530830デフォルトの名無しさん
2010/05/15(土) 11:54:55Googleの独自APIとか、例えばSlim3みたいなフレームワークの勉強とかも
しなきゃいけないからな。タイムアウト処理とか、あまり本質的でない部分にも
気を配る必要があるし、Scala入門用にはさほどお勧めではないな。
何なら、Opera Uniteとかでもいいんじゃねぇの。やっぱりタダだし。
0831デフォルトの名無しさん
2010/05/15(土) 12:06:550832デフォルトの名無しさん
2010/05/15(土) 12:32:52GAEの最新技術について行けない奴がScalaを習得できるとは思えん。
0833デフォルトの名無しさん
2010/05/15(土) 12:40:43Google App Engine 3アプ目
ttp://pc11.2ch.net/test/read.cgi/php/1267094290/
0834デフォルトの名無しさん
2010/05/15(土) 12:43:25バカなのか?
0835デフォルトの名無しさん
2010/05/15(土) 12:51:27もう休め
0836デフォルトの名無しさん
2010/05/15(土) 19:26:19高速Scalaコンパイル fsc を使ってみてもだめ?
0837デフォルトの名無しさん
2010/05/15(土) 22:11:36ワンライナーにはならないけど、コンパイルすると、
fscでソース読み込みの時点で(windows 2GHz 1coreで)1秒以上はかかるかな。
ただ、コンパイル後は、そんなに気にしないでいいから、
やっぱり、立ち上げたままのREPL環境とコンパイル組み合わせるのが、向いてると思う。
ワンライナーで使うなら、lispみたいに起動時のメモリイメージから再開とか、
REPL起動まで先読みしきったAOT環境が、あればいいんだろうな。
0838デフォルトの名無しさん
2010/05/15(土) 22:30:11「GAEは不安定で使えない」、「GAEはお勧めしない」とかいう批判は出てくるんだけど、具体的な代案が出てこないんだよね。
Opera UniteってServletコンテナじゃないよね。 >>830
みんな何で動かしてんの?ローカルのTomcatで自己満足?
0839デフォルトの名無しさん
2010/05/15(土) 22:43:460840デフォルトの名無しさん
2010/05/15(土) 23:07:570841デフォルトの名無しさん
2010/05/15(土) 23:46:12GAEは初期費用はいりませんてビジネスモデルなだけ。
0842デフォルトの名無しさん
2010/05/15(土) 23:56:580843838
2010/05/16(日) 00:11:09VPSでTomcatって、かなり抽象的だよね?
具体的には、ググってみると
http://www.zone-express.jp/order
このへんか?(宣伝ではない。たまたま日本語で読みやすかっただけ)
月¥2,600円(3ヶ月間限定¥1,300/月)
256MだからDBとか考えるとヒープは64mぐらいか。
うーん。運用するんだったら、もう一ランク上のプランか。
月5000円ぐらい払えば自由なScala環境が手に入るということだね。
また荒れちゃうかもしれないけど、貧乏性な俺はGAEで研究して、サービスもGAEでリリースすることにしよう。
0844デフォルトの名無しさん
2010/05/16(日) 00:13:280845デフォルトの名無しさん
2010/05/16(日) 00:19:190846デフォルトの名無しさん
2010/05/16(日) 00:20:39そもそも、自宅サーバでいいし、いろいろ分けたいなら仮想化すればいい。
ttp://www.mochahost.com/java.php
なんかあるなとおもったら、たいへんだね。最近はどうなんだろう。
ttp://blogs.yahoo.co.jp/girafflex/1069442.html
0847デフォルトの名無しさん
2010/05/16(日) 00:29:50メモリ256MB HDD10GB 490円/月 3か月無料
http://www.saases.jp/hosting/hos_006.html
メモリ512MB HDD50GB 450円/月 初期費用3000円
ほんとだ。
0848838
2010/05/16(日) 00:46:39stax.netはどうやって使うのか、いまいち、わからなかったが、scala liftという選択肢があった。料金が従量制のようだが。
0849デフォルトの名無しさん
2010/05/16(日) 02:47:530850デフォルトの名無しさん
2010/05/16(日) 03:01:370851デフォルトの名無しさん
2010/05/16(日) 09:30:43レジストして、新規アプリケーション作ると、「Scala and Lift」があった。
内部で、mavenリポジトリがあって、scalaとlift追加してあるのか。
http://developer.stax.net/profiles/blogs/new-stax-maven-archetype-for
http://wiki.stax.net/w/index.php/Maven_Scala
http://www.atmarkit.co.jp/fjava/rensai4/devtool05/devtool05_1.html
StaxはEC2ベースなんだね。Morph AppSpaceってのは終了したのか。
VMforceは秋から開発者向け用意するけど、ミニマムの無償版はあるんかな。
0852838
2010/05/16(日) 10:51:10>GAEは知ってるのにVPSって聞いてググらないとわからない人いるのか
俺に言ってんの?VPSの言葉の意味ぐらい俺だって知ってるよ。
VPSとGAEて言葉の抽象度のレベルが違うよね?GAEはGoogleが出しているサービス名だよね?VPSは各社が出しているサービスの総称だよね?
だから具体的じゃねぇっていったんだよ。分かった?
ググったのはServletが使えるVPSのサービスの価格を調べるため。
あーまた話がずれてきた。こういう発言は通常スルーすべきなの?
0853デフォルトの名無しさん
2010/05/16(日) 11:09:57お前は少し落ち着いて半年ROMるべき
0854デフォルトの名無しさん
2010/05/16(日) 12:22:24てかお前は何様だ
0855デフォルトの名無しさん
2010/05/16(日) 12:30:220856デフォルトの名無しさん
2010/05/16(日) 13:41:11子供が触る言語じゃないだろうに・・・
0857デフォルトの名無しさん
2010/05/16(日) 13:42:450858デフォルトの名無しさん
2010/05/16(日) 16:23:20ごめんな。俺たちがお前をスルーすべきだった
0859デフォルトの名無しさん
2010/05/16(日) 17:19:52話すだけ無駄だと思うんだけどな
動的言語原理主義なのにちょくちょくScalaの文句を言うのはどうかと思うけど
0860デフォルトの名無しさん
2010/05/16(日) 17:33:29VPSなんだから勝手にTomcatインストールすればいいだけだな。
メモリ128Mみたいな極端に少ないサービス以外なら普通に動くし。
しかしまたマイナーなサービス引っ張り出してきたもんだな。
ZoneExpressなんて初めて見た会社だわ。
0861デフォルトの名無しさん
2010/05/16(日) 23:32:160862デフォルトの名無しさん
2010/05/17(月) 02:12:51動的な言語ってそんなにいいかねえ
ちょっとスペルミスっただけでわかりにくいバグになるって印象しかないわ
今だと静的に型が決まる言語だと、IDEが発達しててスペルミスしても
赤く表示してくれるしね
それになれちゃうと、動的言語はとてもじゃないけど使えない
0863デフォルトの名無しさん
2010/05/17(月) 02:27:57唯一神なのか多神教なのかみたいな
0864デフォルトの名無しさん
2010/05/17(月) 03:30:02Eclipseが登場して流れが変わったな
IDEが静的言語のデメリットを覆して、強力なメリットを付加したからな
0865デフォルトの名無しさん
2010/05/18(火) 21:10:41テスト時間がコンパイル時間より長くなったりするしな
0866デフォルトの名無しさん
2010/05/19(水) 00:25:17リファクタリングの面倒くささが、静的言語の比ではないってのが。
0867デフォルトの名無しさん
2010/05/19(水) 01:40:570868デフォルトの名無しさん
2010/05/19(水) 20:52:22ってScalaでどうかくの
0869デフォルトの名無しさん
2010/05/19(水) 23:02:30たしかにglobは欲しいな。
たとえば、こんなかなぁ
def glob(pathStr:String, reStr:String) =
for {
file <- new File(pathStr).listFiles
if (reStr.r.findFirstIn(file.getName) != None)
} yield(file)
使い方はこう
glob(".", ".*\\.jpg")
0870デフォルトの名無しさん
2010/05/20(木) 15:08:220871デフォルトの名無しさん
2010/05/20(木) 18:24:23つまりどういう事だってばよ
scala> val l = List("hoge","fuga")
l: List[java.lang.String] = List(hoge, fuga)
scala> Some(List("fuga","fuga")) match{
| case Some(l) => println("NG")
| case _ => pritnln("OK")
| }
NG
scala> Some(List("fuga","fuga")) match{
| case Some(List("hoge","fuga")) => println("NG")
| case _ => pritnln("OK")
| }
OK
0872デフォルトの名無しさん
2010/05/20(木) 19:00:56matchの中のlはローカル変数になってるよ
比較したいならガードを使わなきゃ駄目
0873デフォルトの名無しさん
2010/05/20(木) 19:02:58case Some(l)で、Someで中身がlと同じってのを書きたかったんだろうけど、残念ながら、これだと、
任意のSomeにマッチして中身がlに束縛される、という意味になる。意図通りのことを書きたいなら
scala> val l = List("hoge", "fuga")
l: List[java.lang.String] = List(hoge, fuga)
scala> Some(List("fuga", "fuga")) match {
| case Some(`l`) => println("NG")
| case _ => println("OK")
| }
OK
みたいにする必要がある(変数名の部分を``で囲む)。
0874デフォルトの名無しさん
2010/05/20(木) 19:13:040875デフォルトの名無しさん
2010/05/20(木) 22:52:18みたいな式で、INT_MAX 回よりも多くループを回したいときどうすりゃいいの?
Seq の実装上の制約で 1 to 100 で作られる Seq の要素数は INT_MAX 個を超えられないっぽいのだけれど。
Stream[Long] を使うしかないの? Project Euler の Probrem 3 で早速つまってしまった。
0876デフォルトの名無しさん
2010/05/20(木) 23:34:18INT_MAX回を超えるようなループ回したい場合にStream使うと
ものすごい量のゴミが発生しそうな気がするので、性能考えると、
自前でIterableとかのサブクラス作った方が良いんではないかなあ。
0877デフォルトの名無しさん
2010/05/21(金) 00:11:070878デフォルトの名無しさん
2010/05/21(金) 00:25:43なるほど、どうりで遅すぎるわけだ。
>>877
わかってるかもしれないけど、 RichLong に to あっても一緒のこと。
それで生成される Seq の要素数が問題で、要素の値が問題ではない。
0879デフォルトの名無しさん
2010/05/21(金) 01:45:42遅すぎるって事は、やり方が間違ってると思う。
そこそこ古いマシンだが、Streamでも再帰でも20ms位で終わったよ。
そもそも、その問題の空間計算量はO(1)だから、Seqの要素数は関係ないよ。
0880デフォルトの名無しさん
2010/05/21(金) 02:23:45自分ではProject Euler の Probrem 3をどうやってたかを見直してみたけど、
基本的には、
Stream.from(3,2).takeWhile(_ < limit).map(_.toLong)
ってやってた。
>>876
REPLで試してみると、どんなに大きなlimitでも一瞬で返るし、
(実際に必要なものしか生成されないはずなので)無駄は無いと思う。
0881デフォルトの名無しさん
2010/05/21(金) 03:11:100882876
2010/05/21(金) 09:43:36Procject Eulerの問題が実際にStreamで事足りるかどうかは
実際にその問題を解いてないからわからないんだけど、原理的には
Streamを使うと大量のゴミが発生する。というのは、Streamって
要は
hd: A
tl: => Stream[A]
みたいな感じのtailの部分が遅延評価されるリストになってるわけ
だけど、ここからn番目の要素を取ってこようとすると、このhdとtl
を持ったセルn個分のゴミが発生する。どっかの変数がうっかり
Streamの先頭を指していない限りガベージコレクタによって回収される
はずなので、メモリ消費量のオーダが即座にO(n)になるわけじゃないけど、
とにかく大量のゴミが発生する事は間違いない。もちろん、tl部分が
評価されなければそのセルは生成されないわけだけど、今回の話だと
ループをn回ぶん回すというのが前提だったようなので。
一方、Iteratorなら(適切にspecializedアノテーションが付いてる
事を前提にすれば)、ゴミはほとんど発生しない。ということが
言いたかった。
0883876
2010/05/21(金) 09:49:14>>880
の例
>Stream.from(3,2).takeWhile(_ < limit).map(_.toLong)
みたいな場合で、Streamの最初の方の要素しか使わないんだったら、
もちろん無駄な要素は生成されないので、Streamで十分というか
Streamの方が良いね。どういう問題だったかは見てないので、
それで良いのかは知らないのだけど。
0884880
2010/05/21(金) 11:20:56なるほど、Streamの途中を欲しい場合は、
{そこまでの)不要なものがゴミとして生成されちゃうんだね。
確かに、
Stream.from(1).takeWhile(100000000).reverse.head
だと、OutOfMemoryになる。
ちなみに、さっきの
Stream.from(3,2).takeWhile(_ < limit)
だけど、Problem 3的にはlimitは√nのつもりだから
正しくは、
Stream.from(3,2)).takeWhile(_ <= limit)
です。><
あと881が行ってるように、
「√600851475143 < INT_MAXだから、Stream[Int]で足りる」ので
Streamを使ってProblem 3の答えはでるんだけど、
実際のところ
これって、本当にLong領域まで生成されるのか不安になってきた、
きちんと対応する場合は
Stream.from(3,2).map(_.toLong).takeWhile(_ <= limit)
なのかなぁ・・・?
Stream.from(1).map(_.toLong).takeWhile(_<=3000000000L).foldLeft(0L)(_+_)
を実験中だが、まだ処理が終わらない・・・
0885デフォルトの名無しさん
2010/05/21(金) 13:52:59> Stream.from(1).map(_.toLong).takeWhile(_<=3000000000L).foldLeft(0L)(_+_)
> を実験中だが、まだ処理が終わらない・・・
それは桁あふれで無限ループになるよ。
俺も、Eulerでは良くやる……
0886880
2010/05/21(金) 15:30:24あぁ・・やっぱり・・・
ということは、結局LongなStreamではないってことだね、
やるには、自前で作るしかないと。
せっかくなので、初めてIteratorを作ってみた。
こんな感じでいいのだろうか・・・
class LongStream(init:Long) extends Iterator[Long] {
var counter = init
def hasNext = true
def next = {
counter += 1L
counter
}
}
scala> new LongStream(0).takeWhile(_<=3000000000L).foldLeft(0L)(_+_)
res23: Long = 4500000001500000000
どうしてもStreamにしたければ、Stream.fromItaratorが使えそう。
0887デフォルトの名無しさん
2010/05/22(土) 22:31:44Stream.fromの実装を見ると早いと思うけど、こんな感じになってる。
#実際はオーバーロードがあるからちょっと違うけど。
def from(n:Int) = Stream.cons(n, from(n + 1))
なんで、MAX_INTまでいったら、次のtailはfrom(MIN_INT)になっちゃう。
単純にLongのStreamが欲しいなら、次のコードで良いんじゃない?
def from(n:Long) = Stream.cons(n, from(n + 1))
0888デフォルトの名無しさん
2010/05/23(日) 02:01:400889デフォルトの名無しさん
2010/05/23(日) 07:37:45たとえば、
class a{}
trait b extends a{}
みたいに。
でも以下のようになるとコンパイルエラーになるから、
もちろん間接的に多重継承をしようとしてもできないようになってるわけだが・・・
class a{}
trait b extends a{}
class c{}
class d extends c with b{}
いまいち利点というか、使う場面がわからない・・・
0890880
2010/05/23(日) 07:41:20なるほど〜、その通りだった。
Stream深いな・・・
scala> def from(n:Long):Stream[Long] = Stream.cons(n,from(n+1))
from: (Long)Stream[Long]
scala> from(1)
res0: Stream[Long] = Stream(1, ?)
scala> from(1).takeWhile(_<=3000000000L).foldLeft(0L)(_+_)
res1: Long = 4500000001500000000
0891デフォルトの名無しさん
2010/05/23(日) 19:02:14トランポリンってどういうときに使うもんなの?
0892デフォルトの名無しさん
2010/05/23(日) 19:07:37Scalaでは、たとえば相互再帰する関数をStackOverflowすること
無しに扱いたい(末尾再帰にしたい)場合とか。2.8では
scala.util.control.TailCallsを使うと実現できる。
0893デフォルトの名無しさん
2010/05/23(日) 21:54:38ありがとうございます。
トランポリンは末尾最適化の名前?という理解で正しいですか?
末尾再帰で相互再帰を使っており、末尾最適化するときにトランポリンを使うということですか?
0894デフォルトの名無しさん
2010/05/24(月) 00:42:11liftのプロジェクトって mvn packageとかしてコンパイルしないと実行できないんですかね??
ソース変更する毎にコンパイルせずにそのまま走らせることできたらいいなと思うんですが・・
0895デフォルトの名無しさん
2010/05/24(月) 01:40:150896デフォルトの名無しさん
2010/05/24(月) 01:55:47Playとかそうだけど
コアの部分もScalaで再発明するメリットあんまないからね
ScalaがCGIで楽に動くようにでもなれば変わるだろうけど
0897デフォルトの名無しさん
2010/05/24(月) 09:23:04特定のテクニックの名前。
http://en.wikipedia.org/wiki/Trampoline_%28computers%29
0898デフォルトの名無しさん
2010/05/25(火) 01:16:56Scalaの本って厚すぎて・゚・(ノД`)・゚・。な感じに陥るんだけど。
もっとシンプルで簡潔に書いた読みやすい本だしてよ。
JavaScript: The Good Partsみたいな本。
170ページ1,800円くらいの。
0899デフォルトの名無しさん
2010/05/25(火) 01:24:55あるけどこのスレでその話しちゃ駄目らしいよ
0900デフォルトの名無しさん
2010/05/25(火) 01:33:39作者乙
0901デフォルトの名無しさん
2010/05/25(火) 12:17:42いいじゃない
日本語が良ければ翻訳版かWeb連載記事の印刷で
0902デフォルトの名無しさん
2010/05/25(火) 12:41:21このスレの 100から120くらいを読め。
内容は薄いので、1時間くらいで読めるぞ!
でも、本自体は厚い。
紙質が厚いから厚い。
文庫本サイズで600円だったら、買う価値のある本。
0903デフォルトの名無しさん
2010/05/26(水) 20:37:370904デフォルトの名無しさん
2010/05/28(金) 01:16:510905デフォルトの名無しさん
2010/05/28(金) 17:12:53ここのページの下まで行って、サーバ立ち上げてみたんですが、
トップにアクセスすると
http://192.168.0.4:8080/_ah/login なんたら
にリダイレクトされて
The requested page was not defined in your SiteMap, so access was blocked.
とエラーが出てしまいます・・。
web.xmlで
<filter-class>bootstrap.liftweb.LiftFilter</filter-class>
みたいに設定してるんですが、これだけだと何か足りないんでしょうか。
gae混ざっててすいません。どなたか教えていただけると嬉しいです。
0906デフォルトの名無しさん
2010/05/28(金) 22:51:030907デフォルトの名無しさん
2010/05/28(金) 22:57:260908デフォルトの名無しさん
2010/05/28(金) 23:31:13本当に関数脳を鍛えたいなら
それこそ関数型言語が本筋だろう
0909デフォルトの名無しさん
2010/05/29(土) 00:25:560910デフォルトの名無しさん
2010/05/29(土) 00:29:520911デフォルトの名無しさん
2010/05/29(土) 14:59:040912デフォルトの名無しさん
2010/05/29(土) 21:58:350913デフォルトの名無しさん
2010/05/29(土) 22:41:130914デフォルトの名無しさん
2010/05/30(日) 00:25:26関数型言語向いてなさ過ぎだろ
Schemeやったら死ぬぞ
0915デフォルトの名無しさん
2010/05/30(日) 00:37:10386アセンブラなら覚えるべき文法が少ないから、敷居も低いな。
0916デフォルトの名無しさん
2010/05/30(日) 02:59:020917デフォルトの名無しさん
2010/05/30(日) 15:15:160918デフォルトの名無しさん
2010/05/30(日) 21:18:10とちょっと違うけど自分もそのページの見てやってて、
4ページまで行ったんだけどコンパイルしてブラウザからアクセスしたら
Message: java.lang.NullPointerException
ってエラーが出ました。
コンパイルが通ってるのにエラー出るってどういうことなんでしょう?
Javaやったことないのでエラー文もよくわからないのです・・
0919デフォルトの名無しさん
2010/05/30(日) 21:27:020920デフォルトの名無しさん
2010/05/30(日) 21:28:10ガッ!
0921デフォルトの名無しさん
2010/05/30(日) 23:00:06これに少し感動。
初心者がこんな風に思う時代になったんだ
0922デフォルトの名無しさん
2010/05/31(月) 01:40:560923918
2010/05/31(月) 01:54:300924デフォルトの名無しさん
2010/05/31(月) 06:31:550925デフォルトの名無しさん
2010/05/31(月) 09:11:58値が入っていない変数に、メソッドを発行するとよく出るよ。
変数の初期化し忘れとか確認してみな。
0926デフォルトの名無しさん
2010/05/31(月) 18:42:54OptionかBox型を使うべき。
0927デフォルトの名無しさん
2010/05/31(月) 22:52:07> アドバイスいただけると嬉しいです。。
codezine の記事書いている作者にメール送るのも手ですよ。
読者からの反応はうれしいものなんです。
0928デフォルトの名無しさん
2010/05/31(月) 23:06:30大事なのは私が嬉しいかどうかです。。
0929デフォルトの名無しさん
2010/05/31(月) 23:17:14微妙にScala界隈の著名人が集まるスレになっとるな
0930デフォルトの名無しさん
2010/05/31(月) 23:19:57八重洲ブックセンター行ったらコップも入門も売り切れだったぜ
あっちの方の入門は残ってたけど
0931デフォルトの名無しさん
2010/05/31(月) 23:31:500932デフォルトの名無しさん
2010/05/31(月) 23:45:570933デフォルトの名無しさん
2010/06/01(火) 01:50:28なんの自演だそれは
0934デフォルトの名無しさん
2010/06/01(火) 02:53:120935デフォルトの名無しさん
2010/06/01(火) 03:20:180936デフォルトの名無しさん
2010/06/01(火) 08:57:30あと3冊ぐらいあった。
オアゾは売りきれてたよ。在庫検索では。
0937デフォルトの名無しさん
2010/06/01(火) 12:45:54工学社のも買ってやれよw
0938デフォルトの名無しさん
2010/06/01(火) 20:56:26ブレークするような出来事あったっけ?
なんかいまいち、盛り上がりに欠けると思うのだが。
0939デフォルトの名無しさん
2010/06/01(火) 21:15:50でscalaという流れとか
androidとかgae/jとかもあるけどな
0940デフォルトの名無しさん
2010/06/01(火) 23:41:27オー○ックとかリク○ートあたりが採用したのかもしれんと妄想
0941デフォルトの名無しさん
2010/06/02(水) 12:09:45printlnだとサーバのログには書き出せるんですがブラウザで確認するにはどうすればいいかなと・・
0942918
2010/06/02(水) 12:53:45ちょっとずつ分かってきましたがまだ疑問点があります・・
http://codezine.jp/article/detail/5103?p=3
ここのページの通り、
case class Event(
id:Option[Long],
name:String, description:String,
fromDate:Date, toDate:Date, place:String,
join:Long, count:Long, user:User, members:List[User] )
が定義されているのですが、
entityValueメソッド
-----定義-----------
def entityValue[T]( e:Entity, name:String ) =
e.getProperty( name ).asInstanceOf[T]
--------------------
を使って、のちに
entityValue[User]( e, "user" ),
entityValue[JList[User]]( e, "members" ).toList
(eはgoogle app engineのEntityクラスオブジェクト)
などとしているところがありまして、ここの
entityValue[JList[User]]( e, "members" ).toList
の部分でmembersプロパティに値がなかった場合、entityValue関数内の e.getProperty( name )で nullが返ってきて
null.asInstanceOf[JList[User]]
が実行され、
java.lang.NullPointerException
となるようです。
(分けます・・)
0943918
2010/06/02(水) 12:55:58entityValue[User]( e, "user" )
では、たとえuserプロパティの値が空であったとしても、
entityValue関数内の e.getProperty( name ) でnullではなく空文字が返ってくるようで
"".asInstanceOf[User] となり、この場合はNULLエラーにならないようです。
userプロパティ、membersプロパティ共に値が空であることには代わりが無いのに
e.getProperty("user")では空文字列が返り、
e.getProperty("members")ではNullが返ってきてしまう理由がよくわからないのですが、
これはなぜなのでしょうか?
[User]と[JList[User]]の違いなのか、それとももしかするとapp engine sdkの仕様なのでしょうか。
度々質問ですいません。アドバイスいただけると嬉しいです。
0944デフォルトの名無しさん
2010/06/05(土) 00:56:58Software Design誌の影響?
0945デフォルトの名無しさん
2010/06/05(土) 09:39:310946デフォルトの名無しさん
2010/06/05(土) 11:28:34ブックマーク数から判断すると火元は下記記事ですね。
RubyからScalaに乗り換えた15くらいの理由 - ヽ( ・∀・)ノくまくまー(2010-04-26)
http://wota.jp/ac/?date=20100426#p01
http://b.hatena.ne.jp/entry/wota.jp/ac/?date=20100426%23p01 (759 users)
http://b.hatena.ne.jp/entry/wota.jp/ac/?date=20100426 (138 users)
0947デフォルトの名無しさん
2010/06/06(日) 00:40:290948デフォルトの名無しさん
2010/06/06(日) 00:44:07頼むから公表しないでくれマイナス要因になるから
握手が生き甲斐でプログラム組んでると思われるぞ
0949デフォルトの名無しさん
2010/06/06(日) 00:55:070950デフォルトの名無しさん
2010/06/06(日) 01:03:00D言語まっしぐらだわ。
0951デフォルトの名無しさん
2010/06/06(日) 01:09:53次スレ頼んだ。
0952デフォルトの名無しさん
2010/06/06(日) 10:14:42使い道が違うと思うんだけど。
0953デフォルトの名無しさん
2010/06/06(日) 12:08:21上記エントリから関連記事を辿るとさんざん指摘されてる。
動的言語と静的言語は違うからな。
もともと静的言語が好みで、しかしJavaみたいに煩雑な記述はしたくない、という話だろう。
まあ、そういう層は潜在的に多そうに感じるけど。
0954デフォルトの名無しさん
2010/06/06(日) 12:36:27お互い様だよそこは
0955デフォルトの名無しさん
2010/06/06(日) 12:51:170956デフォルトの名無しさん
2010/06/06(日) 13:29:180957デフォルトの名無しさん
2010/06/06(日) 13:56:11SS本の中でもやたらRubyとの比較がでてくる
じゃなければ普通PHPやPythonと比較するだろう
0958デフォルトの名無しさん
2010/06/06(日) 14:25:090959デフォルトの名無しさん
2010/06/06(日) 14:29:300960デフォルトの名無しさん
2010/06/06(日) 15:34:43pythonと比べても大してかわらん。
scalaはユニークだ。
0961デフォルトの名無しさん
2010/06/06(日) 23:24:00http://www.pragprog.com/titles/btlang/seven-languages-in-seven-weeks
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With Seven Languages in Seven Weeks, by Bruce A. Tate
0962デフォルトの名無しさん
2010/06/06(日) 23:41:150963デフォルトの名無しさん
2010/06/07(月) 15:24:200964963
2010/06/07(月) 15:27:28http://pc12.2ch.net/test/read.cgi/tech/1275891974/
0965デフォルトの名無しさん
2010/06/09(水) 23:39:19Dateならあるみたいなんですが・・
0966デフォルトの名無しさん
2010/06/09(水) 23:45:260967デフォルトの名無しさん
2010/06/10(木) 01:17:39俺もJavaのライブラリあんまよく知らないんだけど
こうやっていちいち調べなきゃいけないのが面倒くさいよね
0968デフォルトの名無しさん
2010/06/10(木) 01:30:240969デフォルトの名無しさん
2010/06/10(木) 01:34:110970デフォルトの名無しさん
2010/06/10(木) 22:54:14Scala 向けのテンプレートエンジン Scalate を
http://github.com/scalate/scalate/tree/scala_next
から DL してきてsbt か mvn でビルドしようとしている。
どうやら CLASSPATH に jar が追加されていないようで、
コンパイルに失敗する。
どうしたらコンパイルド通るの?
ってか、Scalate のソースから一発でまともにコンパイルできた
覚えがないのだけど、そういうもんなの?
Scalate の公式に載っている通りだと思うのだが、俺の手順がいけないの?
0971デフォルトの名無しさん
2010/06/11(金) 00:34:390972デフォルトの名無しさん
2010/06/11(金) 02:54:06よくわからんが
mvn -Dtest=false install -Pdownload
でいけた
0973デフォルトの名無しさん
2010/06/11(金) 22:52:40やってみたら、だいぶエラーが減った。次の 1 つだけになった。
(略) scalate-core/src/main/scala/org/fusesource/scalate/filter/MarkdownFilter.scala:19: error: value petebevin is not a member of package com
[INFO] import com.petebevin.markdown.MarkdownProcessor
[INFO] ^
[ERROR] one error found
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
だけどやっぱり CLASSPATH に追加されてない気がする。
0974965
2010/06/12(土) 13:14:030975デフォルトの名無しさん
2010/06/12(土) 14:01:240976デフォルトの名無しさん
2010/06/12(土) 14:27:29ウチじゃコンパイルエラーは出ないな。テスト通らないけどな!
0977デフォルトの名無しさん
2010/06/12(土) 15:38:12むしろ、何が同じなの?
0978デフォルトの名無しさん
2010/06/13(日) 02:37:100979デフォルトの名無しさん
2010/06/13(日) 02:45:350980デフォルトの名無しさん
2010/06/13(日) 19:53:41RC3が本来のRC1ぐらいなんじゃね?
We are now getting really close to the final release! って、大きなバグ無ければ最終候補かな?
0981デフォルトの名無しさん
2010/06/13(日) 23:45:54たぶんそうだろうねえ。Scala DaysでRC1出すために
スケジュールが前倒しされてるのだと思う
本来よりも差し引いて考えるべきだろね
0982デフォルトの名無しさん
2010/06/14(月) 07:43:330983デフォルトの名無しさん
2010/06/14(月) 12:13:33それがScalaプロジェクトのいつものやり方なのではないでしょうか。
root/scala/tags
http://lampsvn.epfl.ch/trac/scala/browser/scala/tags
Scala 2.8.0 RC5
http://www.scala-lang.org/node/6684
レス数が950を超えています。1000を超えると書き込みができなくなります。