プログラミング言語 Scala 5冊目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/01/08(土) 20:45:02http://www.scala-lang.org/
リンク集
http://sites.google.com/site/scalatohoku/%E5%8B%89%E5%BC%B7%E4%BC%9A%E8%B3%87%E6%96%99
前スレ
プログラミング言語 Scala 4冊目
http://hibari.2ch.net/test/read.cgi/tech/1275891974/
0002デフォルトの名無しさん
2011/01/08(土) 20:46:00Scalaは簡潔かつ優雅で型安全な方法でよくあるプログラミングパターンを表現できるように
設計された汎用プログラミング言語です。
Scalaはオブジェクト指向と関数型言語の特徴をスムーズに統合しておりJavaやその他の言語を扱う
プログラマをより生産的にすることができます。(以下略)
ttp://www.scala-lang.org/node/25
・Scalaに関する書籍(英語)
ttp://www.scala-lang.org/node/959
リファレンスマニュアルや草稿のPDFなども充実しているのでそちらも参照してください。
日本語の資料には、チュートリアルの訳やIBM dW、IT Proの連載記事、各々で開かれた勉強会の資料などがあります。
0003デフォルトの名無しさん
2011/01/09(日) 14:02:46言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0004デフォルトの名無しさん
2011/01/09(日) 18:09:180005デフォルトの名無しさん
2011/01/09(日) 18:17:38入るんだっけ?
後、欲しいのは、IO周りだな。Javaのクラス使う事が多すぎる。
XML周りはもうちょっと拡張して欲しいかな。操作によってはめんどい事もある。
バイナリXMLとか、HTML5とかもサポートされるといいかも。
あ、あとは、もうちょっとソースにjavadoc書いて欲しい。
0006デフォルトの名無しさん
2011/01/09(日) 20:41:22http://d.hatena.ne.jp/kiyoshihosoda/20101230/p1
残念ながら2.9でもIOは追加されないっぽい。まぁそこまで困らないし、変に使いづらいものが入るよりまし。
HTML5とか仕様完全に決まってないから、まだ無理だと思う。
ユーザーがつかうライブラリ部分のソースにはjavadoc(っていうかscaladoc)まあまあ書いてあると思うが?
0007デフォルトの名無しさん
2011/01/09(日) 21:00:21https://github.com/eengbrec/Scalax.IO
0008デフォルトの名無しさん
2011/01/09(日) 22:34:28http://partake.in/events/2919d1c2-8f43-49a4-ab0b-1b2de9c74771
0009デフォルトの名無しさん
2011/01/09(日) 22:36:51なぜか数だけは多い
0010デフォルトの名無しさん
2011/01/09(日) 22:45:570011デフォルトの名無しさん
2011/01/09(日) 23:18:080012デフォルトの名無しさん
2011/01/09(日) 23:59:200013デフォルトの名無しさん
2011/01/10(月) 01:51:500014デフォルトの名無しさん
2011/01/10(月) 02:36:07信者を騙ったアンチかと思う位だ
0015デフォルトの名無しさん
2011/01/10(月) 08:47:560016デフォルトの名無しさん
2011/01/10(月) 10:35:00参照してくれないのはなぜでしょうか?
class C(val i:Int) { def m1(c:C) = 1 }
object C { implicit def string2C(s:String) : C = { new C(0) } }
scala> "abc" m1 (new C(3))
<console>:7: error: value m1 is not a member of java.lang.String
"abc" m1 (new C(3))
ちなみに
import C._
とすればうまくいきます。
0017デフォルトの名無しさん
2011/01/10(月) 12:30:08これじゃあ型Cのインスタンスを引数に取るm1っていう名前のメソッドっていうだけで
文字列を型Cに変換するべきとまではコンパイラに伝わらないから
Cのコンパニオンオブジェクトの中まで探索されない
val c: C = "abc"
c m1 (new C(3))
ならおk
0018デフォルトの名無しさん
2011/01/10(月) 12:35:490019デフォルトの名無しさん
2011/01/10(月) 13:36:49ありがとうございます。
なるほど。
C型のコンパニオンオブジェクトの中を探しにいくのは
「C型から別の型への変換が必要なときに限る」
ということですね。
今関連しているすべての型のコンパニオンオブジェクトが
検索対象に入ると勘違いしてました。
0020デフォルトの名無しさん
2011/01/11(火) 22:41:57Javaを使っていると
どうしても冗長性が気になるんですよね。
Scala使ってみたいな。
0021デフォルトの名無しさん
2011/01/11(火) 23:27:02コンパイルは爆速。
ソースに型エラーがあるくらいでコンパイラがスタックトレース吐いて落ちることもない。
ドキュメントも充実。
強力な型推論があるので、高階関数でも型注釈まみれになることがない。
eclipseが重すぎて気が狂うなんてことも勿論ない。
0022デフォルトの名無しさん
2011/01/11(火) 23:43:12おいそれ全部弱点じゃないのか
0023デフォルトの名無しさん
2011/01/11(火) 23:46:24なんかオススメのエディタとかIDEとかありませんかね?
0024デフォルトの名無しさん
2011/01/12(水) 00:14:470025デフォルトの名無しさん
2011/01/12(水) 20:42:21別に英語でもいいんですが。
0026odersky
2011/01/12(水) 23:18:11コップ本原著の第二版
0027デフォルトの名無しさん
2011/01/12(水) 23:30:050028odersky
2011/01/12(水) 23:34:110029デフォルトの名無しさん
2011/01/12(水) 23:58:220030デフォルトの名無しさん
2011/01/13(木) 08:11:050031デフォルトの名無しさん
2011/01/13(木) 22:13:11Scalaで学ぶ関数脳入門 がお勧め。
関数型プログラミングの解説をしつつ、Scalaでの書き方を解説と言う感じ。
基礎がしっかりつく。
Scala言語自身をしっかり学びたいならば、ボクらのScala が良いかと思う。
この2冊呼んで、あとは通称コップ本を手元においておけば良かろう。
0032デフォルトの名無しさん
2011/01/14(金) 00:24:30コップ本は意味不明すぎた
0033デフォルトの名無しさん
2011/01/14(金) 00:28:35きっとある程度の自信はあるんでしょ
0034デフォルトの名無しさん
2011/01/14(金) 02:56:04俺は絶対普及しないと思う。Java程バックというか後ろ盾がないし、Haskellには美しさやオールイミュータブルじゃないことによるデメリットが大きすぎるし、Ruby並に動的な機能を使えるようにするために言語仕様を拡大しすぎた。
まあ、それでも一部の人にはウケるだろうね。言語にこだわりがあるなら勉強すればいいと思う。
0035デフォルトの名無しさん
2011/01/14(金) 02:58:56なにいってんの
003634
2011/01/14(金) 02:59:10○ Haskellには美しさで劣り、
003734
2011/01/14(金) 03:02:29ライブラリだけじゃ全く足りないと思うよ。初心者用の本とか運用ノウハウとか教育とか、もういろいろ足りないよ。VMなにそれみたいな、初心者でもやってみようかなと思わせるぐらいじゃないと。Javaと比べるならね。
0038デフォルトの名無しさん
2011/01/14(金) 03:16:090039デフォルトの名無しさん
2011/01/14(金) 07:48:180040デフォルトの名無しさん
2011/01/14(金) 09:46:440041デフォルトの名無しさん
2011/01/14(金) 13:58:30eclipseはSSD使わないとモッサリかも
0042デフォルトの名無しさん
2011/01/14(金) 15:00:250043デフォルトの名無しさん
2011/01/14(金) 20:46:24>Ruby並に動的な機能を使えるようにするために言語仕様を拡大しすぎた。
の一文見ただけで、まともにScala触ったことがあるのかきわめて疑わしく思える…
基本的にScalaの組み込み構文で動的に処理されるものなんてほとんど無いがな
0044デフォルトの名無しさん
2011/01/14(金) 21:11:520045デフォルトの名無しさん
2011/01/14(金) 21:43:49どの辺がRuby並に動的なんだろう
0046デフォルトの名無しさん
2011/01/15(土) 01:53:260047デフォルトの名無しさん
2011/01/15(土) 03:35:08お前は馬鹿なのか?大丈夫か?
と釣られてみるテスト
0048デフォルトの名無しさん
2011/01/15(土) 04:29:550049デフォルトの名無しさん
2011/01/15(土) 09:20:090050デフォルトの名無しさん
2011/01/15(土) 10:02:13それともポリモーフィズムなんかは全部動的だと思っているのか
どちらにしても怖いな
0051デフォルトの名無しさん
2011/01/15(土) 11:02:24うんだからRubyとPHP以外まともな
Webフレームワークが存在しないわけで
0052デフォルトの名無しさん
2011/01/15(土) 11:27:530053デフォルトの名無しさん
2011/01/15(土) 13:54:520054デフォルトの名無しさん
2011/01/15(土) 14:20:06すべてJNI経由というのはつらい。
Haskellのccallみたいなのがあればいいのに。
0055デフォルトの名無しさん
2011/01/15(土) 16:52:01Liftってどうなんだろう?
Google App Engineで使ってみようかな。
0056デフォルトの名無しさん
2011/01/15(土) 17:07:040057デフォルトの名無しさん
2011/01/15(土) 17:37:11よりScala的なのは前者。
0058デフォルトの名無しさん
2011/01/15(土) 22:38:38App EngineでLiftは、App Engineの制限に引っかかりやすい(裏でActorつかってたり)から、あまりおすすめできない。
個人的にはscalatraとかが、シンプルでおすすめ
0059デフォルトの名無しさん
2011/01/15(土) 22:51:22無理があったからRubyが成長したわけで
Javaをベースにした言語だとその無理が
改善されるわけではない
0060デフォルトの名無しさん
2011/01/16(日) 01:10:00Roo
0061デフォルトの名無しさん
2011/01/16(日) 01:38:22そことRoRの飛躍もさっぱり関連性がわからない
なにを言っているのだ?
0062デフォルトの名無しさん
2011/01/16(日) 17:50:290063デフォルトの名無しさん
2011/01/16(日) 18:14:110064デフォルトの名無しさん
2011/01/16(日) 22:18:59HTML や SQL 周辺のシステム境界は Java でもリフレクション使いまくりになるから
動的型付け言語が楽だが、そこに挟まるアプリ層が厚くなれば動的型付け言語なんて
危なくて使っていられなくなるよ。
あんた DB 舐めて表示する程度の Web アプリしか作ったこと無いんじゃね。
0065デフォルトの名無しさん
2011/01/17(月) 20:41:00デバッグやリファクタリングが面倒とか言うなら理解出来るが
0066デフォルトの名無しさん
2011/01/17(月) 22:04:000067デフォルトの名無しさん
2011/01/18(火) 19:11:47とか書けることに気づいた。
ひょっとしてdefってvalのシンタックスシュガーなのかな?
関数定義のときだけちょっと変換してくれるだけの。
0068デフォルトの名無しさん
2011/01/18(火) 23:44:19違う。def x = 1は、呼ばれるたびに1を返すメソッドの定義。
0069デフォルトの名無しさん
2011/01/19(水) 00:15:09> def x = 1
これは、関数定義で
def x: Int = { return 1; }
の省略されたもの。
> ひょっとしてdefってvalのシンタックスシュガーなのかな?
ちょっと違う。
だけど、あるクラスのフィールド値を参照したい場合、
・フィールド値の参照として書いても、
・getterメソッドを定義して、メソッド呼び出ししても
同じような書式で出来るっていうのはあるよ!
----------
class MyClass( arg1: Int){
var y1 : Int = arg1
def y2 : Int = y1
}
val p = new MyClass( 2 )
println(p.y1) //<-- フィールドの参照
println(p.y2) //<-- getterメソッドで呼び出し
----------
0070デフォルトの名無しさん
2011/01/19(水) 01:42:53http://www.oreilly.co.jp/books/9784873114811/
0071デフォルトの名無しさん
2011/01/19(水) 01:58:270072デフォルトの名無しさん
2011/01/19(水) 02:13:43それだと p.y1 はフィールド参照じゃなくてgetterだし p.y1 = 0 はsetter呼び出しになるよ
private[this]以外のvarは自動でsetter/getter定義される
0073デフォルトの名無しさん
2011/01/20(木) 00:04:59@から開始する行をコメント行
\nで始まる行はスキップするような以下の例はどうやって
パースするのがいいの?
@
\n
@ test
0074デフォルトの名無しさん
2011/01/27(木) 15:17:02http://www.oreilly.co.jp/books/9784873114811/
2011年01月 発行
誰か買ったか?
とりあえず、コップ本読者が買う必要あるかどうかレポートしてくれ。
0075デフォルトの名無しさん
2011/01/29(土) 12:36:180076デフォルトの名無しさん
2011/01/29(土) 14:55:460077デフォルトの名無しさん
2011/01/29(土) 16:06:080078デフォルトの名無しさん
2011/01/29(土) 17:24:440079デフォルトの名無しさん
2011/01/29(土) 17:41:400080デフォルトの名無しさん
2011/01/29(土) 23:31:51浅海さんによる紹介で分かりやすくてGood。
でも、見開き4ページ分だけ、、。
連載でやってほしいなあ。。
0081デフォルトの名無しさん
2011/01/30(日) 14:13:32val は ?
0082デフォルトの名無しさん
2011/01/30(日) 14:16:290083デフォルトの名無しさん
2011/01/30(日) 14:44:580084デフォルトの名無しさん
2011/01/30(日) 14:47:17http://dictionary.goo.ne.jp/leaf/je2/68739/m0u/%E5%A4%89%E6%95%B0/
>へんすう【変数】
> 〔数学で〕a variable
http://dictionary.goo.ne.jp/leaf/je2/1064/m0u/%E5%80%A4/
>あたい【値・価】
> 3 〔数学で〕a value
0085デフォルトの名無しさん
2011/01/30(日) 15:51:21数学的な意味合いとしてはそういうもんなの
0086デフォルトの名無しさん
2011/01/30(日) 16:33:580087デフォルトの名無しさん
2011/01/30(日) 17:35:010088デフォルトの名無しさん
2011/01/30(日) 17:41:010089デフォルトの名無しさん
2011/01/30(日) 17:42:080090デフォルトの名無しさん
2011/01/30(日) 17:45:230091デフォルトの名無しさん
2011/01/30(日) 18:25:500092デフォルトの名無しさん
2011/01/30(日) 18:51:050093デフォルトの名無しさん
2011/01/30(日) 19:07:15プログラミング上級者には冗長だな
0094デフォルトの名無しさん
2011/01/31(月) 01:35:11後半を読んでもその台詞を吐ける奴って1%以下な気がするが。
0095デフォルトの名無しさん
2011/01/31(月) 13:07:13まさに俺。
あ、99%の方な。
0096デフォルトの名無しさん
2011/01/31(月) 17:14:21locally -> identity にしてもだめで
scala-2.8.0-finalから2.8.1-finalにしたけどやっぱりだめだった
% scalac -version
Scala compiler version 2.8.1.final -- Copyright 2002-2010, LAMP/EPFL
% cat Test.scala
object Test {
{
class Foo(v: Int = 1)
locally { new Foo }
locally { } /* この行を削除するとコンパイルエラーは発生しない. */
}
}
% scalac Test.scala
Exception in thread "main" java.lang.Error: symbol variable Foo$module$1 does not exist in Test.<init>
at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:33)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:843)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadArguments(GenICode.scala:1030)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:742)
...
0097デフォルトの名無しさん
2011/02/03(木) 17:32:40OSをlinuxに変更したのでフォルダ毎もってきてsbt上でコンパイルすると
java.io.FileNotFoundExceptionが発生してしまいます。
コンパイル成功させるにはどうしたら良いかどなたか教えて頂けませんでしょうか。
尚sbt-appengine-pluginを使用しています。
sbt自体は立ち上がり、updateも成功しています。
009897
2011/02/03(木) 18:29:57ただsbt-appengine-pluginの方をpublishし忘れてただけでした。
0099デフォルトの名無しさん
2011/02/03(木) 19:09:230100デフォルトの名無しさん
2011/02/04(金) 21:59:37言語仕様書にはあまり大したこと書いてないみたい。
http://www29.atwiki.jp/tmiya/pages/94.html
0101デフォルトの名無しさん
2011/02/04(金) 22:27:06スタックトレース吐いて落ちるんだ…納得いかん。
0102デフォルトの名無しさん
2011/02/04(金) 23:44:490103デフォルトの名無しさん
2011/02/05(土) 00:00:000104デフォルトの名無しさん
2011/02/05(土) 00:41:320105デフォルトの名無しさん
2011/02/05(土) 00:48:081章しか読んでないけど、日本語は問題ないっぽい
0106デフォルトの名無しさん
2011/02/05(土) 08:28:45case class C()
case class D() extends D
warning: there were deprecation warnings; re-run with -deprecation for details
defined class D
0107デフォルトの名無しさん
2011/02/05(土) 20:08:19extractorを使えということらしい。
0108デフォルトの名無しさん
2011/02/08(火) 02:13:11http://www.infoq.com/jp/news/2011/02/lift-jruby
0109デフォルトの名無しさん
2011/02/09(水) 01:22:240110デフォルトの名無しさん
2011/02/09(水) 15:09:520111デフォルトの名無しさん
2011/02/09(水) 21:34:500112デフォルトの名無しさん
2011/02/10(木) 02:15:44おまえ意味わかってねえだろ。ゴミが
0113デフォルトの名無しさん
2011/02/10(木) 23:24:370114デフォルトの名無しさん
2011/02/11(金) 00:16:150115デフォルトの名無しさん
2011/02/11(金) 00:21:13聞けるよw
http://dictionary.goo.ne.jp/leaf/ej3/43046/m0u/implicit/
0116デフォルトの名無しさん
2011/02/11(金) 00:35:15これって、Scalaにとっては逆風だなあ、、、。
これって、、、
これまで David Pollak氏は、WebフレームワークであるLiftを
Lift in Scala で作ってきた。
David氏いわく”Liftは現在入手可能な最高の Web フレームワーク”で
あるにもかかわらず、Scalaがプログラマの間での普及度がいまいちなことから
メジャーな言語であるRubyで開発することに切り替えたってこと?
しかも、すでに、Liftの大部分はJRuby上で動作するまで来ている?
つまり、今後は、Lift in JRuby をメインに開発していくってこと?
Liftは、Scalaのキラーアプリになると思っていたんだがなあ、、、。
0117116
2011/02/11(金) 01:01:36でも、David氏は完全にScalaを捨てたってわけでもないんだな。
今はとにかくLift自体を普及させることに尽力をつくすってことか。
JRubyが拡大すれば、いずれ、ScalaへのBridgeとなるってことか。
0118デフォルトの名無しさん
2011/02/11(金) 03:47:050119デフォルトの名無しさん
2011/02/11(金) 05:43:290120デフォルトの名無しさん
2011/02/11(金) 05:48:320121デフォルトの名無しさん
2011/02/11(金) 08:35:09http://www.infoq.com/jp/news/2008/03/liftweb
>わたしはこれまで Rails による開発を 18 カ月、Java による開発を 10 年経験してきました。
>Rails はウェブ開発に新しい風を吹き込みました。よく使うタスクはコマンド一発で実行することができます。
>実にすばらしい。しかし、私は気が付いてしまいました。Ruby の動的型付けは多くのエラーを引きおこすことに。
>そして、安心してデプロイするためには 95% ものテストカバレッジを達成しなければいけないことに。
>95% のテストカバレッジを得ることの代償として、私の書いたコードは(テストコードも含めて) Java で書いたものと
>同等のサイズにまでふくれあがってしまいました。
0122デフォルトの名無しさん
2011/02/11(金) 08:43:22Scalaはコンパイル通すたびにもっと美しい型制約がないか試したくなる
sbtを裏で走らせておけば脳汁出まくり状態だよ〜
0123デフォルトの名無しさん
2011/02/11(金) 12:45:17動的型付け言語はそれをすべて後回しにする。
テストやメンテを無視して良いなら、とりあえず動く物を作るには動的型付け言語が速くて当たり前。
だがそれを持って生産性が高いなどと言ってる奴を見るとアホかと思う。
0124デフォルトの名無しさん
2011/02/11(金) 13:04:35Clayみたいにllvm使わないと今後は生き残れないねぇ
0125デフォルトの名無しさん
2011/02/11(金) 13:34:56プロファイリングも、大手各社が金を投入しまくっただけはある。
将来的に載せ替えの必要があるならコンパイラレベルで開発すれば
よいだけの話だな。
0126デフォルトの名無しさん
2011/02/11(金) 17:41:32ソースコード間違っているぞ(w
case classの継承は、2.8でdeprecatedになった。詳細は、プログラミングScalaにあったはず。
0127デフォルトの名無しさん
2011/02/11(金) 19:37:330128デフォルトの名無しさん
2011/02/11(金) 19:44:210129デフォルトの名無しさん
2011/02/11(金) 19:52:020130デフォルトの名無しさん
2011/02/11(金) 20:04:11位置情報系サービスのForsqueareは全面Liftで作られてたり
日本だとGMOの求人に書いてたけど、バックエンド担当に2人Scalaエンジニアがいるらしい
0131デフォルトの名無しさん
2011/02/11(金) 20:29:47http://oss.infoscience.co.jp/scala/liftweb.net/index.html
0132デフォルトの名無しさん
2011/02/11(金) 20:35:12あれは1冊目には向かない。
Scalaの書き方がなんとなくわかっていて、
より深い理解をするための本だね。
1冊目はオライリーがよさげ。
0133デフォルトの名無しさん
2011/02/11(金) 21:20:34とにかく、最初に、関数型言語とかScalaの特徴をつかむのに良い。
1.5冊目として、「ボクらのScala」 も読みやすいのでお勧め。
個人的には、海外製の本は、言い回しがあんまり好きじゃない。
なんというか、章のはじめのあいさつ文みたいな書き出し、とか、
いまいち的を得ていない例題とか、、、読んでいてテンポが狂う。
0134デフォルトの名無しさん
2011/02/11(金) 22:39:520135デフォルトの名無しさん
2011/02/11(金) 23:07:510136デフォルトの名無しさん
2011/02/12(土) 06:41:34なんか聞いたことあるなとおもったら、OpenSSLやrsyncなどの翻訳を提供してた会社だった。
http://www.google.co.jp/search?hl=ja&q=site%3Awww.infoscience.co.jp%2Ftechnical%2F
http://oss.infoscience.co.jp/
0137デフォルトの名無しさん
2011/02/12(土) 07:38:400138デフォルトの名無しさん
2011/02/12(土) 10:46:34勉強する資格ないだろ
0140デフォルトの名無しさん
2011/02/12(土) 21:47:54現段階では、コップ本で理解できないようでは
環境構築やライブラリ周りで挫折すると思う
仕様もまだ安定していないし……
0141デフォルトの名無しさん
2011/02/12(土) 22:07:07付いてこれないやつはどんどん置いてかれるぞ
0142デフォルトの名無しさん
2011/02/12(土) 22:19:230143デフォルトの名無しさん
2011/02/12(土) 23:14:370144デフォルトの名無しさん
2011/02/13(日) 01:22:29S-99 Scala Problemsでググれ
0145デフォルトの名無しさん
2011/02/13(日) 02:01:02S-99: Ninety-Nine Scala Problems
ttp://aperiodic.net/phil/scala/s-99/
0146デフォルトの名無しさん
2011/02/13(日) 02:56:000147デフォルトの名無しさん
2011/02/13(日) 03:38:12かわいい
0148デフォルトの名無しさん
2011/02/13(日) 03:46:570149デフォルトの名無しさん
2011/02/13(日) 03:54:36いいね
0150デフォルトの名無しさん
2011/02/13(日) 04:11:340151デフォルトの名無しさん
2011/02/13(日) 04:20:590152デフォルトの名無しさん
2011/02/13(日) 04:59:19https://sites.google.com/site/scalatohoku/changes-and-improvements-on-scala-2-9
0153デフォルトの名無しさん
2011/02/13(日) 05:01:370154デフォルトの名無しさん
2011/02/13(日) 10:21:27Lock-free/Wait-freeなのかな?
0155デフォルトの名無しさん
2011/02/13(日) 11:19:57便利だな。
0156デフォルトの名無しさん
2011/02/13(日) 13:30:37for(i <- (1 to 10).par) process(i)
これでprocess(i)が並列実行される
0157デフォルトの名無しさん
2011/02/13(日) 14:11:38なるほどActorつくらなくても手軽に並列化できるんですね
関数型の本領発揮ってかんじ
0158デフォルトの名無しさん
2011/02/13(日) 17:13:100159デフォルトの名無しさん
2011/02/13(日) 17:38:150160デフォルトの名無しさん
2011/02/13(日) 19:21:41>>158
自分はErlangをイメージしました
0161デフォルトの名無しさん
2011/02/13(日) 19:24:590162デフォルトの名無しさん
2011/02/13(日) 19:31:560163デフォルトの名無しさん
2011/02/13(日) 21:24:13Java7のラムダ導入でもParallel Collectionの実現が課題になって記憶がある。
それはさておきオダタンの論文ドゾー
http://infoscience.epfl.ch/record/150220/files/pc.pdf
0164デフォルトの名無しさん
2011/02/13(日) 21:36:425分くらいソース読んだ感じだと、importしただけどはおそらくスレッドプールは作られないと思う。
src/library/scala/collection/parallel/Tasks.scala あたりを見てみたが、Parallel Collectionでforeachなどの
高階関数が評価されるタイミングでobject ThreadPoolTasksが評価されてシングルトンインスタンスが
生成され、ここで初めてスレッドプールが出来ると予想される。
間違ってたらゴメンナ
0165デフォルトの名無しさん
2011/02/13(日) 21:46:300166デフォルトの名無しさん
2011/02/13(日) 21:52:04え、じゃあ、初回は遅いじゃん。
0167デフォルトの名無しさん
2011/02/13(日) 21:56:59コップ本かバク本
0168デフォルトの名無しさん
2011/02/13(日) 22:08:35ただの想像に過ぎないけど、
・import した時点で幾つスレッドプールが必要になるかは分からない
・import が重いのと初回が重いのとどちらが良いとも言えない
・初回が重くとも loop の回数が大きければ全体として pay する
・初回が重くとも一回の loop 毎の処理が重ければ全体として pay する
・当たり前だけど、損益分岐点を越えられない場合は使わないでね
みたいな感じなんじゃないかなあ
0169デフォルトの名無しさん
2011/02/13(日) 22:19:37まぁ初回にThreadPool生成のコストを払う戦略になってるのは確かだな。eagerではなくlazyに
やってるんだろう。
それがイヤで事前にThreadPool用意したいなら、scala.collection.parallel.ThreadPoolTasksを
自分で先にどこかで評価しておけば、先にThreadPool生成のコストを支払っておくことができる。
0170デフォルトの名無しさん
2011/02/13(日) 22:21:03それとも違う意味で言ってる?
なんか他の言語の似たような機能と勘違いしてる人がいるきがする
0171デフォルトの名無しさん
2011/02/13(日) 22:24:12Java でも class がロードされる時の処理を記述出来なかったっけ?
0172デフォルトの名無しさん
2011/02/13(日) 22:33:36sttic initializerのことだな。だがアレはあくまでクラスがクラスローダでロードされた時点で
実行される処理。
import文自体は、171の言うとおり単なる名前解決でしかないはず。
Parallel Collectionなクラスをimportしてるクラスがロードされたとして、
そこでimport先のクラスも一緒にロードされるとは限らない、んじゃなかったっけ?
0173デフォルトの名無しさん
2011/02/13(日) 22:40:47クラス変数やクラスメソッドを利用する時に困るんじゃない?
自分はそういう理解だったけど、間違ってたらご免。
0174デフォルトの名無しさん
2011/02/13(日) 22:52:570175デフォルトの名無しさん
2011/02/13(日) 22:54:59(そのクラスを必要とする式の評価のタイミングで)Lazyに行われる、はず。
Java仮想マシン仕様のこの辺に書いてある。
http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#19175
そういうわけで、static fieldなどに書いてあるクラスは(ほぼ)同時にロードされるが、
インスタンスメソッド内からしか参照されないクラスは、あとでロードされる。
0176デフォルトの名無しさん
2011/02/13(日) 22:59:210177デフォルトの名無しさん
2011/02/14(月) 22:05:58私は Scala が好きです。Scala は私のお気に入りのプログラミング言語なのです。
これまで数多くの開発組織で,Scala に関する話をしてきました。
しかしその後の Scala の普及状況を見たとき,私はこの言語が Ruby や,
あるいは Python の採用レベルにさえも達しそうもないことに気付いたのです。
0178デフォルトの名無しさん
2011/02/14(月) 23:25:12http://www.infoq.com/news/2011/02/lift-jruby
>I love Scala and it's my favorite programming language.
>After talking to a lot of development organizations and watching Scala's adoption rate,
>I've realized that Scala is unlikely to have Ruby or even Python-level adoption
>in the next few years.
原文の"in the next few years"が翻訳されていません。
Lift作者はScalaが普及しない事に気付いたとは言っていません。
Scalaが普及するのに時間がかかる事に気付いたと言っています。
0179デフォルトの名無しさん
2011/02/14(月) 23:31:160180デフォルトの名無しさん
2011/02/14(月) 23:39:340181デフォルトの名無しさん
2011/02/15(火) 00:15:340182デフォルトの名無しさん
2011/02/15(火) 02:20:270183デフォルトの名無しさん
2011/02/15(火) 07:30:43同義だよねー
Scalaに未来がないから見切りつけたのか
0184デフォルトの名無しさん
2011/02/15(火) 09:17:14Scalaの未来については下記記事をどうぞ。
Lift作者も当然これを知っているでしょう。
プログラミング言語Scalaの開発チーム、EUより230万ユーロの研究開発費を獲得
http://sourceforge.jp/magazine/11/01/18/0523203
0185デフォルトの名無しさん
2011/02/15(火) 14:31:29Javaに、ScalaのobjectなどJavaと整合性が取れない部分についてJRuby拡張して合わせるのか。
JRubyで作ったScala依存プログラムがどれだけふえるんかね?
0186デフォルトの名無しさん
2011/02/15(火) 19:56:34意味が変わるって中学の頃習ったけど、
冠詞を付けないfew yearsって結構用例でてくるよな。
この場合もaを付けないと、意味が変わってるんだろうか。
0187デフォルトの名無しさん
2011/02/15(火) 22:09:53リリースする時はコンパイルしたものを配備
ってことをコード等を変更せずに出来るです?
0188デフォルトの名無しさん
2011/02/15(火) 22:55:050189デフォルトの名無しさん
2011/02/15(火) 23:03:26EUじゃこれ受託するところって
未踏(笑)と同じ扱いだからな
0190デフォルトの名無しさん
2011/02/15(火) 23:09:530191デフォルトの名無しさん
2011/02/15(火) 23:31:27未踏で2億円も出ねーよw
0192デフォルトの名無しさん
2011/02/15(火) 23:42:190193デフォルトの名無しさん
2011/02/16(水) 00:03:36Javaは2000億円以上つぎ込んでるし
llvmだって100億ぐらいつぎ込んでる
0194デフォルトの名無しさん
2011/02/16(水) 00:06:120195デフォルトの名無しさん
2011/02/16(水) 01:52:400196デフォルトの名無しさん
2011/02/16(水) 04:05:02意図と違うかもしれないが、
Getting Started with Scala
http://www.scala-lang.org/node/166
「Script it !」のように、REPLに打ち込むのとおなじように、ファイル読み込みして実行出来る。
-- HelloWorld.scala --
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world! " + args.toList)
}
}
HelloWorld.main(args)
$ scala HelloWorld.scala foo bar
コンパイルするとき一番下の行が邪魔でコンパイル出来ないし、
スクリプトなら、「println("Hello, world! " + args.toList)」だけでも実行できるから
なんともアンバランスだけど。
0197デフォルトの名無しさん
2011/02/16(水) 04:52:52scala -i HelloWorld.scala -e "HelloWorld.main(args)" a b
で実行できるし、コンパイル後
scala HelloWorld a b
で実行できるけど、カッコ悪いな。
0198デフォルトの名無しさん
2011/02/16(水) 19:59:38あしゃしゃす
コード変更しないといけないのは厳しいですね
まあコンパイルなんてそんな面倒じゃないか
0199デフォルトの名無しさん
2011/02/17(木) 01:32:49この時、コンパイルしてtmpディレクトリにクラスファイル出来るから、結局コンパイルしてるREPLに移行する。
そして、-eは、文字列をevalしてREPL終了する
単に、scalaソースだけ引数にする場合はREPLで解釈して終了する。
0200デフォルトの名無しさん
2011/02/17(木) 01:37:08コンパイルして、読み込んで、REPLに移行する
うはー
0201デフォルトの名無しさん
2011/02/17(木) 01:49:43↓こういう素朴な疑問が1章に書かれてあーなるほどなーって思った
なんで左が変数名で右が型なのか
⇒コンパイラが構文解析しやすいから
ジェネリクスみたいな型指定でなんで <> ではなく [] になったのか
⇒ < とかは不等号としてメソッド名にそのままつけることがよくあるため(角カッコはメソッド名として使えない)
0202デフォルトの名無しさん
2011/02/17(木) 21:04:360203デフォルトの名無しさん
2011/02/17(木) 22:33:40糞の塊
0204デフォルトの名無しさん
2011/02/17(木) 22:35:030205デフォルトの名無しさん
2011/02/17(木) 22:37:370206デフォルトの名無しさん
2011/02/17(木) 23:09:310207デフォルトの名無しさん
2011/02/17(木) 23:16:210208デフォルトの名無しさん
2011/02/17(木) 23:21:45これでも時代は下って、技術と学問は進歩してるんだし。
0209デフォルトの名無しさん
2011/02/17(木) 23:42:55エディタでAST書いてるもんだもんな
0210デフォルトの名無しさん
2011/02/17(木) 23:57:47ああいうのは無駄だと思うけど、C++のテンプレートの入れ子で出る
「>>」がシフトと区別つかないってのも有名な話で、
それをわかってていつまでも引きずる必要もないわな
0211デフォルトの名無しさん
2011/02/18(金) 00:04:37val Int i = 10
みたいになっちゃうの?
0212デフォルトの名無しさん
2011/02/18(金) 01:37:56final int i = 0
0213デフォルトの名無しさん
2011/02/18(金) 01:52:20val m = new mutable.HashMap[Int, Int]()
みたいに使った時は、specializedなHashMapが使われるの?
それとも、この宣言のどっかに@specializedを埋め込まないとダメ?
0214デフォルトの名無しさん
2011/02/18(金) 06:14:200215デフォルトの名無しさん
2011/02/18(金) 08:28:40ってことはval相当のを書くほうがfinal付ける分タイプ数多くなるんか、それはやだな(var相当のほうがタイプ数多くなるって言うなら別にいいけど)
javaと同じだと括弧なし関数どうやって書くのかワカンネーし、書き比べるとscalaのほうがまとまってる感じするわー
scala
val i: Int = 10
var i: Int = 10
def i: Int = 10
def twice(i: Int): Int = i * 2
java
final int i = 10
int i = 10
?
int twice(int i) = i * 2
型推論させると
scala
val i = 10
var i = 10
def i = 10
def twice(i: Int) = i * 2
java
final i = 10
i = 10
?
twice(int i) = i * 2
0216デフォルトの名無しさん
2011/02/18(金) 09:30:32「ボクらのScala」買ってみたよ。
初学にはコップ本よりこっちの方が断然いいね。
(コップ本はscalaの言語仕様を一通り知ってから読む本だと思う)
まあ、説明の順番とか、どうでもいいことにページ数割いてあったりとかは
不満は残るが。
あとはページ数を1.5倍にして、もう少し詳細に突っ込んで欲しい気もした。
まあ、まだ2時間しか読んでないけど、こんな感想でした。
0217デフォルトの名無しさん
2011/02/18(金) 15:49:13あー、そうなんだ。自分で定義するクラスしか駄目なのかな。
0218デフォルトの名無しさん
2011/02/19(土) 02:42:15val randomVariables = for (i <- 1 to 100) yield {
if (i < 10) {
r.nextInt(10000)
} else {
r.nextDouble()
}
}
0219デフォルトの名無しさん
2011/02/19(土) 03:37:16Javaのプリミティブをちゃんと勉強したほうがいいと思う
0220デフォルトの名無しさん
2011/02/19(土) 12:28:56教えて?
0221デフォルトの名無しさん
2011/02/19(土) 17:15:53actorとかSTMとかその他いろいろ入ってるライブラリ
0222デフォルトの名無しさん
2011/02/19(土) 18:42:210223デフォルトの名無しさん
2011/02/19(土) 20:19:28.35自分が思ったのと違う結果だった
if(true) 1 else 1.0
の型がDoubleになるんだなAnyValになるのかと思った
0224デフォルトの名無しさん
2011/02/19(土) 20:38:46.010225デフォルトの名無しさん
2011/02/19(土) 23:10:28.73乱雑に、書いてみる。
元々は、ErlangのOTPをscalaに、移植しようとしたことから始まった。
ErlangのOTPは耐障害性フレームワークとその他のユーティリティで構成されている。
http://erlang.shibu.jp/design_principles/overview.htmlScala
下記のScala OTPを中心に色々ユーティリティが元になって、Akkaが出来ている。
http://jonasboner.com/2008/12/11/real-world-scala-fault-tolerant-concurrent-asynchronous-components.html
ちなみに、Akka作ってるひとは、JavaのTeracottaを作った人。
OHPに機能がまとめてあるので、Erlangなどで同じ機能の日本語資料をあたれば、なんの機能があるかわかると思う。
http://akka.io/
0226デフォルトの名無しさん
2011/02/19(土) 23:24:23.48http://erlang.shibu.jp/design_principles/overview.html
0227デフォルトの名無しさん
2011/02/20(日) 01:25:47.81そうなんですか。
OTPはErlang本見ればわかるのでちょっとあとで舐めてみます。
ちなみに、Akkaの耐障害性ってどうやって実現してるんですかね?
TeracottaとEhcacheを内部で利用してゴニョゴニョ
してるのかなぁ。商用サポート前提のコードじゃなければいいんだけど
0228デフォルトの名無しさん
2011/02/20(日) 21:29:38.050229デフォルトの名無しさん
2011/02/21(月) 10:32:44.250230デフォルトの名無しさん
2011/02/21(月) 18:48:00.61OTPはたしかにPragmatic/オーム社ので結構分かりやすく書いてあった。(別件だが、bpstudyでMnesiaの部分はオライリーで本来のアクセス方法が載るはずと言ってた)
Akka 1.1以降で、TeracottaやEhcacheみたいに数百GBクラスの単一オブジェクト?に関するクラスタリングの商用プラグインを出して、そちらのサポートで作者は仕事するつもりらしい。あとは差別化でおなじみな監視や分析系のGUIもそうなるかも。
ただし、通常の耐障害性のある分散はOTPと同じ仕組みなので問題ないと思う。
監視担当のアクターと実行担当のアクターで耐障害性上げる仕組みや、起動中の変更反映など。STMは1.1で作り直しみたいだ。
日本語版来てた
http://www.infoq.com/jp/news/2011/02/akka10
0231デフォルトの名無しさん
2011/02/21(月) 18:49:55.760232デフォルトの名無しさん
2011/02/21(月) 20:48:16.17Scala IO 0.01を使うんじゃないの?
0233デフォルトの名無しさん
2011/02/21(月) 21:10:01.040234デフォルトの名無しさん
2011/02/21(月) 21:17:21.51標準ライブラリを補完しよう的なプロジェクトは幾つか有るが、
誰かまとめて欲しい。
0235デフォルトの名無しさん
2011/02/22(火) 03:13:35.26IOについては、これがそのうち標準に入る予定らしい
だから逆に既存のIOのAPIは開発止まってるという感じ
0236デフォルトの名無しさん
2011/02/22(火) 11:01:44.500237デフォルトの名無しさん
2011/02/22(火) 22:32:52.65Teracotta商法かぁ最悪な展開になりそうだな。
細かいバグ以外オープン阪はサポートしない
ってスタンス継承されちゃうのか。
Teracotta高い割にバグ対応とか全然してくれないし
0238デフォルトの名無しさん
2011/02/22(火) 22:42:48.55"abcde" match {
case "ab" :: s :: "e" => println(s)
case _ =>
}
的なことがしたいんだけど、素直に正規表現使え?
0239デフォルトの名無しさん
2011/02/23(水) 00:40:01.880240デフォルトの名無しさん
2011/02/23(水) 01:42:25.030241デフォルトの名無しさん
2011/02/23(水) 01:51:16.980242デフォルトの名無しさん
2011/02/24(木) 23:01:39.41そしたら小田好先生が直接コメントして、2.9リーリスと同時にeclipseで対応させたやつ出すから、今作ってるから
的な話になってるらしい。面白い
http://alarmingdevelopment.org/?p=562
0243デフォルトの名無しさん
2011/02/24(木) 23:11:17.000244デフォルトの名無しさん
2011/02/25(金) 00:44:18.99コンパイルも遅いの?
0245デフォルトの名無しさん
2011/02/25(金) 08:27:22.180246デフォルトの名無しさん
2011/02/25(金) 12:44:04.510247デフォルトの名無しさん
2011/02/25(金) 13:01:18.700248デフォルトの名無しさん
2011/02/25(金) 20:50:20.42小田好先生って誰だ?って思ったら、Martin Odersky教授のことか、、。
今時の言語は、開発のスピードが早さも重要だが、
Scalaの本体とか周辺ライブラリの開発者のコミュニティーってどれくらいの規模なんだろう。
まさか、ScalaってOdersky先生一人で開発している???わけないか。
0249デフォルトの名無しさん
2011/02/25(金) 21:37:31.08すでにBertrand Mayer(Eiffel開発者)を追い越した感がある(俺調べ)
0250デフォルトの名無しさん
2011/02/25(金) 22:20:46.93せめて、型エラーで落ちない程度でも。
0251デフォルトの名無しさん
2011/02/25(金) 23:49:07.66twitterがgithubで公開してるものはいっぱいあるけど
https://github.com/twitter
細かいものが多数あるから、コードリーディングにはいいかもしれない
あまり変態的なことしてないし
0252デフォルトの名無しさん
2011/02/25(金) 23:51:33.15たくさんありすぎて、よく分からんから、何か紹介してくれ。
0253デフォルトの名無しさん
2011/02/25(金) 23:53:55.20学生とかいるの?
odersky先生の大学の生徒とか?
0254デフォルトの名無しさん
2011/02/25(金) 23:58:51.35http://www.publickey1.jp/blog/10/twittergizzard_scalasharding.html
0255デフォルトの名無しさん
2011/02/26(土) 00:11:32.83http://code.google.com/p/scalalab/
Scalalabは、名前のとおり、Matlabを意識しているが、
Scalaの文法で、行列とか信号処理とかグラフ表示とかが出来るもの。
今流行りの 集合知プログラミングとか認識とかのアルゴリズムの確認に
良いかも。
ちょっと試した感じは、結構気合を入れて作られている様子。
かなり頻繁にアップデートされているみたいなので期待大。
0256デフォルトの名無しさん
2011/02/26(土) 08:59:52.80一方でR言語ラッパーいまひとつもりあがらねー
https://github.com/hughleat/scala2R
R と Java R Interface を使ったthinラッパー
https://github.com/ScalaR/ScalaR
Rのコンソール実行環境をScalaで実装しましたよってものらしい
とにかく R って検索しづれーのはなんとかならんか
0257デフォルトの名無しさん
2011/02/26(土) 16:44:06.760258デフォルトの名無しさん
2011/02/26(土) 20:26:01.99scalaの型推論のうち単純なもの
例えば
val str="aaa"
みたいなのは、あまり意味を感じない。
例えば、java ならeclipseを使っていれば、ctrl 1
で勝手に型推論される。
逆に
val tmp=list.get(1);
みたいなってしまうと、可読性が落ちる気がするんだけど、
そこら辺って、どういう風に考えられてるんですか?
あと、varとvalを使い分ける意味は宣言的(ヒューマンエラーを防ぐ)
意味しかないのかな?
例えば、valを使うと高速化ができるとか
valを使った時にだけ、使える機能があるとか。
わかる人いたら教えてください。
0259デフォルトの名無しさん
2011/02/26(土) 21:26:20.49HogeFugaPiyo obj = new HogeFugaPiyo()
って書いてたら、"コードを読むときに"冗長・・・と感じるようになる。
人間が一度に視界に入れることの可能な情報量って限界があるだろうから。
まぁscalaに慣れれば。
その"慣れる"までの期間に個人差はあるだろうが
0260デフォルトの名無しさん
2011/02/26(土) 21:37:41.39可読性を落としている原因はlistという変数名だと考えるね
0261デフォルトの名無しさん
2011/02/26(土) 21:40:13.57規約だったような?
0262デフォルトの名無しさん
2011/02/26(土) 21:42:57.09確かにそうだね。
>>260
>可読性を落としている原因はlistという変数名だと考えるね
変数名に型名入れるくらいなら、型宣言した方がよくないか?
0263デフォルトの名無しさん
2011/02/26(土) 21:57:07.86単数/複数に気を付けるくらいだなー
case class Person(name: String)
val customers = List(Person("Tanaka"), Person("Yamada"))
val firstUser = customers(0)
0264デフォルトの名無しさん
2011/02/26(土) 21:58:13.09scalaには選べる自由があるよ
0265デフォルトの名無しさん
2011/02/26(土) 22:33:52.19そうだとすると、varをデフォルトにして、valの時だけ
finalってつける方が良い気がしちゃう。
0266デフォルトの名無しさん
2011/02/26(土) 23:07:19.270267デフォルトの名無しさん
2011/02/26(土) 23:10:57.14俺的にvalとvarはタイプ数おんなじでどっちが書きやすいということもなくなんていうか対等な感じがしていいわ
scalaっていう言語の性格が出てると思う
0268デフォルトの名無しさん
2011/02/26(土) 23:30:06.56あんた、scala向いてないわ。
0269デフォルトの名無しさん
2011/02/27(日) 00:21:26.06一つ覚えた事を、次に覚える事の足がかりに出来ない。
結局の所、学習者は学習する前にまず学習の仕方を(自力で)修得しなければならない。
以前から類似の物を使っていれば簡単だろうが、初学者には厳しい学習曲線にならざるを得ない。
まあ草の根で開発されたようなソフトウェアにはよくあることだが。
0270デフォルトの名無しさん
2011/02/27(日) 01:20:13.85関数型言語
0271デフォルトの名無しさん
2011/02/27(日) 02:36:02.390272デフォルトの名無しさん
2011/02/27(日) 03:21:27.76eclipseプラグインも一緒に出すって言ってるけど、そっちはベータ版だからな
0273デフォルトの名無しさん
2011/02/27(日) 09:51:21.390274デフォルトの名無しさん
2011/02/27(日) 11:08:59.380275デフォルトの名無しさん
2011/02/27(日) 14:39:25.480276毛の生えたブリーフ
2011/02/27(日) 15:28:32.50なんだけど、Scala勉強しようかな。
「Scalaで学ぶ関数脳入門」おもしろいです。いま、5章め読書中。
0277デフォルトの名無しさん
2011/02/27(日) 18:12:35.790278デフォルトの名無しさん
2011/02/27(日) 22:52:07.742.7→2.9 のときも、変更によって、動かないコードが出てきたりしたからなあ。
だけど、>>275 の言うように、2.8→2.9はあまり変更はないのじゃないかと予想。
>276
あの本はお勧めだよね。
0279デフォルトの名無しさん
2011/02/27(日) 23:31:32.07try〜catch使ってると末尾再帰にできなかったりする?
@tailrec def func(): Int = {
try {
func()
} catch {
case e: Exception => ...; func()
} finally {
...(何か後始末)
}
}
0280デフォルトの名無しさん
2011/02/28(月) 00:42:43.18その例は戻ってこないように見えるのか?
0281デフォルトの名無しさん
2011/02/28(月) 01:02:09.95確かに、finallyを処理しに戻ってくるように見えますね。。なるほど。
0282デフォルトの名無しさん
2011/03/05(土) 14:27:47.81もうダメか
0283デフォルトの名無しさん
2011/03/05(土) 15:27:26.650284正義の下着:コスモパンティー
2011/03/05(土) 19:22:03.31ところで、scalaでgtk+をいじりたいのですが、scalaでGUIを解説している
サイト知りませんか?
0285デフォルトの名無しさん
2011/03/05(土) 21:14:06.33まぁ日本語ではないだろうから、英語のサイトか、javaでGUI解説したサイト探したほうがいいと思われ
なんか答えになってないけど
0286デフォルトの名無しさん
2011/03/05(土) 21:17:59.32誰かこのコード解説してください
0287デフォルトの名無しさん
2011/03/05(土) 21:53:26.740288デフォルトの名無しさん
2011/03/05(土) 22:47:41.24いやです
0289デフォルトの名無しさん
2011/03/06(日) 03:34:18.47val list: java.util.List[String] = Arrays.asList[String](Array("hello", "scala"))
とかやろうとすると、asListのところで「引数の型がArray[String]だ」って怒られるんですけど、
どうすればいいんでしょう。
0290デフォルトの名無しさん
2011/03/06(日) 03:42:39.88val list: java.util.List[String] = Arrays.asList[String](Array("hello", "scala"): _*)
とやれば、可変長引数の一番目の引数ではなく、配列としてみてくれるんですね。
0291デフォルトの名無しさん
2011/03/06(日) 22:49:00.320292デフォルトの名無しさん
2011/03/07(月) 00:21:47.360293デフォルトの名無しさん
2011/03/07(月) 00:23:08.570294デフォルトの名無しさん
2011/03/07(月) 00:51:50.940295デフォルトの名無しさん
2011/03/07(月) 01:04:56.31全部アセンブラか?
0296デフォルトの名無しさん
2011/03/07(月) 01:15:46.31エミュレータのようなものになりそう。
0297デフォルトの名無しさん
2011/03/07(月) 03:01:01.180298デフォルトの名無しさん
2011/03/07(月) 03:05:30.39それよりJVMの上に作ってるんだからJavaの話でるのは当然で、
そこに無駄にストレス感じてるルビリストやらパールモンジャーとかピチパーが多い印象
0299デフォルトの名無しさん
2011/03/07(月) 05:19:02.40もし、知らなければ読めないって言ったら、先にJavaを勉強するつもりなのか?
それともscala自体を諦めるのか?
なんにせよ、scalaやっていく上である程度のJavaというかJVMの知識は必要だが、
何も知らないとしてもわざわざ先にJava勉強しても遠回りだし、scala勉強したいならとにかくO'Reilly本買って勉強すればいいんじゃないか?
0300デフォルトの名無しさん
2011/03/07(月) 09:33:29.81ちったあ調べてからもの言えばいいのに
クソJava使いの想像力欠如っぷりはさすがだな
メモリー管理もIOもJavaカーネルだとよ
http://www.jnode.org/
0301デフォルトの名無しさん
2011/03/07(月) 15:45:00.010302デフォルトの名無しさん
2011/03/07(月) 21:33:58.92http://www.amazon.co.jp/dp/4774145440
0303デフォルトの名無しさん
2011/03/07(月) 22:22:40.54ちょっと読んだけど、ほんとに何も知らない人向けの、単なる紹介記事なので、
わざわざ買って読むものではないと思う。
0304デフォルトの名無しさん
2011/03/08(火) 01:13:03.68レスどうもです。
今はちょっと興味がある程度なので、javaの知識が大前提であればjavaをやる気になるまで様子見のつもりでした。
本職がハードなので、用途としては回路シミュレーションのデバッグデータ生成ぐらいです。
だから、scalaのメリットを生かしきる!みたいな使い方はできなさそうですが、
なんとなく面白そうなのでscalaをつかってみたいなぐらいの意気込みでした。
とりあえず読んでみる事にします。
アドバイス、ありがとうございました。
0305デフォルトの名無しさん
2011/03/09(水) 21:19:12.390306デフォルトの名無しさん
2011/03/09(水) 23:07:22.870307デフォルトの名無しさん
2011/03/09(水) 23:28:20.300308デフォルトの名無しさん
2011/03/10(木) 00:15:13.41ちょっと使ってみたいな、というために、Scalaを知りたいのだったら、
いきなり、オライリの本 みたいな気合い入ったのを買う必要ないと思う。
おすすめは、「Scalaで学ぶ関数脳入門」。
Java知らなくても読めるし、この本で得た知識は、どんな言語にも応用できる。
日本でこんな良い本が出ているのに、日本人が書いたってだけで無視しているとしたら
もったいない。
これ読んでから、次の本買ってみれば?
ちなみに、、ScalaとかJavaは、ハード屋にはうけが悪いと思う。
素直に、C か sh か perl で書かないと拒否られると思う。
本当は、オレも、VerilogやSystemCと、Scala/Java(JVM)を連携させたいのだが、、。
0309デフォルトの名無しさん
2011/03/10(木) 00:22:57.56それだけで相当ポピュラーな言語になるんだけどなぁ
0310デフォルトの名無しさん
2011/03/10(木) 01:42:19.72コップ派の栄光は短かった。
0311デフォルトの名無しさん
2011/03/10(木) 09:30:46.66仮に 0.1% だとしても実現不可能な数字に見える
0312デフォルトの名無しさん
2011/03/10(木) 14:15:12.18関数型に慣れてない人が多かっただけでしょ
関数になれたらコップを読みたくなるんじゃないか
0313デフォルトの名無しさん
2011/03/10(木) 18:32:15.70FP入門度
0314デフォルトの名無しさん
2011/03/10(木) 19:57:22.46は、たしかに面白い視点から書かれてて、いいんけど
scalaを深く学ぶということに関しては、versionが2.7と2.8がぐちゃぐちゃに分かりづらくまざってるし、
ところどころ間違いあるし、注意したほうがいいと思う
共著だから、章によって書いてる人違って、
章によって、完成度がバラバラ・・・いい章もあるけど、
なんかひどい章もある・・・コード例がすげぇscalaっぽくないやつが・・・
0315デフォルトの名無しさん
2011/03/10(木) 23:33:01.13> このスレもすっかり、関数脳派に乗っ取られたな。
このスレで、関数脳本を推薦しているのは、ほとんどが同一人物だよ。
なぜならば、ほとんどはオレが書いたから。(笑)
:
:
:
2chに書かれる事って、大多数の人間の意見とは限らない。
どっちかというと、同じ人が大量にカキコしているケースの方が多いかもな。
>>314
と、これまで、関数脳本を薦めてきたオレだが、
確かに、Scalaの記述については注意した方が良いかも。
この本は、関数型言語の最初の一歩としてはおすすめだが、
Scalaについては、これ一冊で習得は難しい。
かなり説明が省かれている所もあって、そういうところは、概略だけ見て、
詳細は別の本を開いた方がよさそうだ。
Caseクラスの説明とか、、この本だけでは、さっぱりわからん。
0316デフォルトの名無しさん
2011/03/11(金) 07:51:42.650317デフォルトの名無しさん
2011/03/11(金) 14:18:02.92あとvalってjavaのfinalと同じ機能?
scalaだと、プラスアルファのメリットがあったりする?
0318デフォルトの名無しさん
2011/03/11(金) 17:00:24.79valはjavaのfinalと一緒で再代入が不可。それとlazy valで遅延評価ができるよ。
0319デフォルトの名無しさん
2011/03/11(金) 19:46:10.600320デフォルトの名無しさん
2011/03/11(金) 22:29:09.65良くも悪くも、JVM上の言語って点が問題かと。
確かに既存のLibraryを使えるって点は大きなメリットなのだが、
JVMってだけで毛嫌いする人は多いだろうね。
.netコードも一応吐き出せるのだから、
ちょっとがんばればNativeコードも出力できそうに思うが。
まあ、現時点では、開発陣には、言語自体を進化させるのに注力していると
思われるので、そっちの発展に期待。
>>316
表紙が普通だったら、もっと売れていただろうね。
日本の出版社って、なぜ、表紙絵とかタイトル名のセンスがないのだろうか?
あれって、出版社の意向で決まるんだよね。著者にはいい迷惑。
0321デフォルトの名無しさん
2011/03/11(金) 23:50:18.45nonvariant
contravariant
とかって何て発音しますか?
0322デフォルトの名無しさん
2011/03/12(土) 02:29:26.75なしとかコンパイルできんだろ
0323デフォルトの名無しさん
2011/03/12(土) 03:21:20.22こばりあんと
のんばりあんと
こんとらばりあんと じゃないの
0324デフォルトの名無しさん
2011/03/12(土) 04:10:01.90コヴァリェィント
ノンヴァリェィント
コントルゥァヴヮルゥィウェイント
だろ
0325デフォルトの名無しさん
2011/03/12(土) 05:44:57.210326デフォルトの名無しさん
2011/03/12(土) 19:43:00.58なんか勘違いしてない?型指定なしって…?
0327デフォルトの名無しさん
2011/03/12(土) 23:03:36.72「言語仕様」の話をしてるんだから、コンパイルできるできないは関係ない。
そういう「言語仕様」がナンセンスだと言うならそのとおり。
0328デフォルトの名無しさん
2011/03/12(土) 23:05:46.580329デフォルトの名無しさん
2011/03/12(土) 23:28:44.18ただ、構文解析が面倒になるのと、varとの対称性が崩れるデメリットのに見合うかというと微妙。
0330デフォルトの名無しさん
2011/03/13(日) 01:04:15.71ただScalaは、varとvalどちらかをよく使う言語ではないし、
どちらかをより使わせたい言語でもないのだろう
0331デフォルトの名無しさん
2011/03/13(日) 07:20:26.51a = 1
{
// 「宣言&初期化」か「代入」どっち?
a = 3
}
0332デフォルトの名無しさん
2011/03/13(日) 08:16:43.790333デフォルトの名無しさん
2011/03/13(日) 09:17:51.50i +:= 1
0334デフォルトの名無しさん
2011/03/13(日) 14:36:26.280335デフォルトの名無しさん
2011/03/13(日) 22:04:24.17こういう話が意味がないとは言わないが。
0336デフォルトの名無しさん
2011/03/13(日) 22:20:01.07ところで
>331
省略するのがvalの場合、初期化しかないんじゃない?
0337デフォルトの名無しさん
2011/03/14(月) 23:22:10.590338デフォルトの名無しさん
2011/03/15(火) 08:30:31.560339デフォルトの名無しさん
2011/03/15(火) 08:44:11.76ttp://itpro.nikkeibp.co.jp/article/COLUMN/20050926/221633/
0340デフォルトの名無しさん
2011/03/15(火) 21:10:32.97基本的にはつかうな
0341デフォルトの名無しさん
2011/03/16(水) 00:37:27.69使うときに使わず、使わないときに使う
0342デフォルトの名無しさん
2011/03/16(水) 01:17:10.920343デフォルトの名無しさん
2011/03/16(水) 01:28:16.340344デフォルトの名無しさん
2011/03/16(水) 09:19:13.890345デフォルトの名無しさん
2011/03/16(水) 09:37:12.590346デフォルトの名無しさん
2011/03/16(水) 10:08:44.77そんなこともわかってないのか。
0347デフォルトの名無しさん
2011/03/16(水) 10:50:45.580348デフォルトの名無しさん
2011/03/16(水) 15:46:59.98あとは野放しなのかって質問。
0349デフォルトの名無しさん
2011/03/16(水) 16:07:54.070350デフォルトの名無しさん
2011/03/16(水) 19:29:40.83分かりました。基本的には使いません。
0351デフォルトの名無しさん
2011/03/16(水) 21:53:23.60def action {
println("hello")
}
def action: Unit = {
println("hello")
}
どちらの書き方をScalaでは推奨しているんですか?
0352デフォルトの名無しさん
2011/03/16(水) 22:08:20.200353デフォルトの名無しさん
2011/03/16(水) 22:17:12.54def action {
foo.bar("hello")
}
こんなコードみたときに、果たしてこれは戻り値があるのだろうか・・・?
と常にストレス感じるハメになるけど、素早いコーディングを重視する人たちは
その辺どう考えてんの?
0354デフォルトの名無しさん
2011/03/16(水) 22:36:11.06戻り値の有無では悩まないだろう。暗黙的にUnit型になるんだから。
悩むとしたら=の書き忘れの可能性じゃないか。
0355デフォルトの名無しさん
2011/03/16(水) 22:44:00.48わざわざ fooクラス の barメソッドを見に行かないと、戻り値の有無を確認できないじゃん
コードの挙動以前に、戻り値の有無すらわからない
0356デフォルトの名無しさん
2011/03/16(水) 23:16:40.44自明なことが多いし、コレクションなら下手に書くより推論させたほうが適切な型を吐くし
IDE支援があればますますそうなんだけど、Java上がりの連中は絶対書けってやつが多そうだな
0357デフォルトの名無しさん
2011/03/16(水) 23:57:57.05自分にとって自明でも、他人や「明日の自分」にとっては自明ではなかったりするからねぇ。
0358デフォルトの名無しさん
2011/03/17(木) 00:14:23.65def action: Unit = {
def action {
ならはっきり言って下のほうが、
Unit を読まなくて良い分可読性が高いとさえ感じる
def action: String = {
foo.bar("hello")
}
def action = {
foo.bar("hello")
}
なら当然上のほうが高いけどね
0359デフォルトの名無しさん
2011/03/17(木) 00:33:15.79みんな推論させてからコピペするわけでしょ
0360デフォルトの名無しさん
2011/03/17(木) 00:47:05.58型推論の話をしてるわけでもないし、記述する文字数の話をしてるわけでもない
foo.barメソッドを見に行かないと戻り値がわからないから、actionメソッドの戻り値の有無もわからない
ましてやそのメソッドに複数のif文が合ったら尚更戻り値が意味不明になる
0361デフォルトの名無しさん
2011/03/17(木) 00:48:22.83・一見で何を出力する関数なのか分かりやすい。
・コピペで意味が変わる場合がある。
0362デフォルトの名無しさん
2011/03/17(木) 00:52:12.820363デフォルトの名無しさん
2011/03/17(木) 00:58:08.080364デフォルトの名無しさん
2011/03/17(木) 09:28:25.40scala > def two() { 2 }
two: ()Unit
scala > def two() = { 2 }
two: ()Int
0365デフォルトの名無しさん
2011/03/17(木) 10:16:18.90初心者いじって遊んでるだけだったってオチ
0366デフォルトの名無しさん
2011/03/17(木) 10:36:24.76米原子力委員長「4号機プールに水ないと思う」
【ワシントン=山田哲朗】米原子力規制委員会(NRC)のグレゴリー・ヤツコ委員長は16日、
米下院エネルギー・商業委員会で証言し、福島第一原発4号機について
「使用済み燃料プールの水はすべて沸騰し、なくなっていると思う」との見解を明らかにした。
使用済み燃料棒が露出した結果、「放射線レベルは極めて高く、復旧作業に影響する可能性がある」
とも指摘した。具体的な人体への影響については、「かなり短い時間で致命的になるレベルだ」と述べた。
ヤツコ委員長の発言は、東京に派遣した米国の専門家チームからの情報を基にしているとみられる。
米当局が、日本政府や東京電力よりも、原子炉の状況について悲観的な見方をしていることを示した。
(2011年3月17日10時04分 読売新聞)
http://www.yomiuri.co.jp/science/news/20110317-OYT1T00277.htm
0367デフォルトの名無しさん
2011/03/17(木) 12:01:02.30なにが戻り値かだいたい解るっしょ
さらにコンパイラも確かめてくれるし
0368デフォルトの名無しさん
2011/03/17(木) 18:38:45.42val p = getClass.getTypeParameters
def func(vars: Array[TypeVariables[Class[_]]]) = ...
func(p)
ってやるとtype mismatchって怒られるんだけど、これは処理系のバグ?
それとも、私がヘマやってるだけ?
0369デフォルトの名無しさん
2011/03/17(木) 19:00:46.55http://bit.ly/einLS9
0370デフォルトの名無しさん
2011/03/17(木) 20:56:33.14たしかにメソッド名は同士を使うな
0371デフォルトの名無しさん
2011/03/18(金) 00:43:00.49出すなんて不謹慎にも程がある
0372デフォルトの名無しさん
2011/03/18(金) 01:53:12.05ちょっとScalaの公開を自粛するように抗議してくるわ
0373デフォルトの名無しさん
2011/03/18(金) 04:21:25.48抗議した結果のレポートよろしく
0374デフォルトの名無しさん
2011/03/18(金) 07:31:23.550375デフォルトの名無しさん
2011/03/18(金) 13:26:58.84バグではないな
def func(vars: Array[TypeVariables[Class[_]]])
を
def func[A](vars: Array[TypeVariables[Class[A]]])
にしたらコンパイル通るんじゃね?
0376368
2011/03/18(金) 18:00:44.44自己解決しました。なぜか、
def func(vars: Array[TypeVariables[Class[T]]] forSome { type T })
にしたらコンパイルを通りました。
コップ本には、Hoge[_] は Hoge[T] forSome { type T } と同じだと書いてあるのになぁ。。
0377デフォルトの名無しさん
2011/03/18(金) 20:45:51.04言語仕様を読んでないから推測だけど、_は
それを含む一番外側の[]の型変数とみなされているんじゃない?
0378デフォルトの名無しさん
2011/03/18(金) 22:26:51.43ふむふむ。
参考までに、REPL(というかSimply Scalaサイト)に投げてみた結果を張ってみます。
> import java.lang.reflect.TypeVariable
> val cls = classOf[Array[String]]
cls: java.lang.Class[Array[String]] = class [Ljava.lang.String;
> def func(cls: Class[_]) = cls.getTypeParameters
func: (cls: Class[_])Array[java.lang.reflect.TypeVariable[java.lang.Class[_$1]]] forSome { type _$1 }
> def func2(vars: Array[TypeVariable[Class[_]]]) = null
func2: (vars: Array[java.lang.reflect.TypeVariable[Class[_]]])Null
> def func3(vars: Array[TypeVariable[Class[T]]] forSome { type T }) = null
func3: (vars: Array[java.lang.reflect.TypeVariable[Class[T]]] forSome { type T })Null
0379デフォルトの名無しさん
2011/03/18(金) 22:27:56.38言語仕様も少しあたってみます。
> func2(cls.getTypeParameters)
error: type mismatch;
found : Array[java.lang.reflect.TypeVariable[java.lang.Class[Array[String]]]]
required: Array[java.lang.reflect.TypeVariable[Class[_]]]
func2(cls.getTypeParameters)
> func2(func(cls))
error: type mismatch;
found : Array[java.lang.reflect.TypeVariable[java.lang.Class[_$1(in value res3)]]] where type _$1(in value res3)
required: Array[java.lang.reflect.TypeVariable[Class[_]]]
func2(func(cls))
> func3(cls.getTypeParameters)
res0: Null = null
> func3(func(cls))
res1: Null = null
0380デフォルトの名無しさん
2011/03/18(金) 22:47:46.63ごめん、一番内側の間違い。
つまり
A[_] = A[T] forSome {type T}
ということは
A[B[_]] = A[B[T] forSome {type T}]
となる。
つまり仮引数の型がA[B[_]]である関数に渡す実引数は
存在型A[B[T] forSome {type T}]でなければならないので
>368は型エラーになる。
言語仕様の3.2参照。
0381デフォルトの名無しさん
2011/03/18(金) 23:43:24.86確かに、こういう例が載ってますね。
ワイルドカードが直接くっついてる型として展開するわけか。
Example 3.2.7
The type List[List[_]] is equivalent to the existential type List[List[t] forSome { type t } ]
List[List[_]]は、『List[List[t]] forSome { type t }という存在型』ではなく、
『「List[t] forSome { type t }」という存在型を型パラメータとするList型』になるから、
そういう意図ならforSomeで明示的に宣言を書かないとダメということですね。
0382381
2011/03/18(金) 23:49:12.41Java資産のScala版を作っていくのはやっぱ重要だと思いましたとさ。
0383デフォルトの名無しさん
2011/03/19(土) 02:35:57.830384デフォルトの名無しさん
2011/03/19(土) 11:10:29.100385デフォルトの名無しさん
2011/03/19(土) 11:15:09.21http://www29.atwiki.jp/tmiya/pages/94.html
0386384
2011/03/19(土) 14:34:31.720387デフォルトの名無しさん
2011/03/19(土) 22:51:52.66日本語で読んでも何が書いてあるのかさっぱりだお。。
0388デフォルトの名無しさん
2011/03/19(土) 23:06:31.20例から推測したり、実装の振る舞いから補完しながらでないと
正確な仕様はわからないと思う。
いっそformal semanticsでも定義すればいいのに。
0389デフォルトの名無しさん
2011/03/22(火) 20:36:52.46>それとlazy valで遅延評価ができるよ。
レス、サンクスです。
遅延評価の価値がいまいちわからないんだけど、
誰かエロい人、教えてくれないか。
俺の理解:
・lazyは単なる実行時の効率化に過ぎない
・副作用が無ければ、全部lazy valでOK。(Haskellがそう?)
・副作用を許容しているので、lazyを付けたり付けなかったり
0390デフォルトの名無しさん
2011/03/22(火) 20:40:27.75コンストラクタ省略可能とか、そういう細かい点はわかる。
あと、yield forが便利だとは思う。
でも、なんかもっと魅力が欲しい。
0391デフォルトの名無しさん
2011/03/22(火) 21:37:27.39魅力感じないなら、ずっとJava使ってればいいんじゃないの?
0392デフォルトの名無しさん
2011/03/22(火) 23:15:20.580393デフォルトの名無しさん
2011/03/22(火) 23:53:30.94っていうのがなにをさしてるのかって話だよな。
「◯◯ができます」っていう大きな特徴(を数点)教えてくれというか、
そういう回答を期待してるのかもしれないけど、
すごく細かいけれど、いいところが大量にあるから便利って捉え方もできるし。
おまえ本当に、scalaの細かい便利な点全部知ってるの?
お前がいう細かい点ってなに?
っていう
0394デフォルトの名無しさん
2011/03/23(水) 00:13:25.82そのなかで特にいいの1個あげてよってScalaプログラマに聞いたらかなりバラバラになりそうな気がする
0395デフォルトの名無しさん
2011/03/23(水) 00:38:36.71そこに価値を見出せない人にはBetter Javaにしか見えないと思う
0396デフォルトの名無しさん
2011/03/23(水) 03:52:30.86あと Lift
0397デフォルトの名無しさん
2011/03/23(水) 09:35:26.99単なる技術論
言語仕様としてScalaは本当に進歩してるのか?ってこと、
進歩してるとしたら、それはどこか?ってことに興味がある。
実務的な話になれば、仕事の本流はこの先もずっとJavaだろうし。
どうでもいいところならScalaを使うことはできる。趣味レベルで。
>>395
>そこに価値を見出せない人には
その価値を他人に説明できないなら、盲信に過ぎないのでは?
0398デフォルトの名無しさん
2011/03/23(水) 09:43:16.380399デフォルトの名無しさん
2011/03/23(水) 09:44:38.85見るとヘドがでそうになるデメリットしかないよ
0400デフォルトの名無しさん
2011/03/23(水) 09:49:23.110401デフォルトの名無しさん
2011/03/23(水) 10:17:27.780402デフォルトの名無しさん
2011/03/23(水) 12:08:22.54関数型言語の何がいいかはMLスレで訊いてくるといいよ
間違ってHaskellスレで訊かないようにね!
0403デフォルトの名無しさん
2011/03/23(水) 12:22:12.93forとifのためにscala使ってるなら、
scala辞めた方がいいと思う。
君にはまだ早い。
0404デフォルトの名無しさん
2011/03/23(水) 16:04:33.75どこをどう読んだらそんな解釈ができるんだ?
0405デフォルトの名無しさん
2011/03/23(水) 16:16:08.06それ以外にどんな解釈があるんだよwww
なんちゃってscala厨にはrubyがお似合い。
0406デフォルトの名無しさん
2011/03/23(水) 19:05:48.95ちょっと、scala.io.BytePickle についてお知恵を拝借したいのです。
http://research.microsoft.com/en-us/um/people/akenn/fun/picklercombinators.pdf
↑に記述の有る maybePickler をOption[T]でやりたくてホゲってるんですが、
Haskellまだよくわかってないから果たしてこれで合ってるのやら...
/* maybe pickler
* http://research.microsoft.com/en-us/um/people/akenn/fun/picklercombinators.pdf
* pMaybe :: PU a -> PU (Maybe a)
* pMaybe pa = alt tag [lift Nothing, wrap (Just, fromJust) pa]
* where tag Nothing = 0; tag (Just x) = 1
*/
implicit def optPickler[T: SPU]: SPU[Option[T]] =
data(
(t: Option[T]) => t match {
case None => 0
case Some(_) => 1
},
List(() => nonePickler[T], () => somePickler[T])
)
def nonePickler[T]: SPU[Option[T]] = lift(None)
def somePickler[T: SPU]: SPU[Option[T]] =
wrap[T, Option[T]]((x: T) => Option(x), x => x.get, implicitly[SPU[T]])
0407デフォルトの名無しさん
2011/03/23(水) 20:48:16.72ただ、型適用を明示的にかけるのはscalaの強みか?
0408デフォルトの名無しさん
2011/03/23(水) 21:21:48.71考えなくもない。
0409デフォルトの名無しさん
2011/03/23(水) 22:36:56.72かわりにサンプルコード用意したので勘弁してくれ
いっぱしのscala厨ならTestSpecとsbtぐらいはもってて当然だよな!
https://github.com/nancyatte-scala/scala-maybe-byte-pickler
0410デフォルトの名無しさん
2011/03/24(木) 01:39:19.310411デフォルトの名無しさん
2011/03/24(木) 09:09:01.700412デフォルトの名無しさん
2011/03/24(木) 09:37:43.01Scalaコンパイラが独自で使っているscala.tools.nsc.io.Picklerを参照してみてはいかが?
implicit def optionPickler[T: Pickler]: Pickler[Option[T]] = nonePickler | somePickler[T]
implicit val nonePickler = singletonPickler(None)
* '|'演算子はCondPicklerにて定義されていて実体はeitherPickler。
* CondPicklerはPicklerをextendsした抽象クラス。
* seqが'~'演算子で記述できる。
など、DSLがBNFのように見やすくなる工夫がなされているみたい。
0413デフォルトの名無しさん
2011/03/24(木) 11:06:23.59演算子採用したい
あとStatePicklerいいですね
BytePicklerではエラー状態を封じ込めてないからリカバーできない
0414デフォルトの名無しさん
2011/03/24(木) 12:34:28.03ちょっとした、GUIアプリとか。
で、そのアプリを配布するとき、どうしようかと迷っている。
JVMは、割と普通のPCには入っているだろうから無問題だけど、
ScalaのライブラリのJarも一緒に配布するのは、サイズがでかくなるなあ。。
0415デフォルトの名無しさん
2011/03/24(木) 21:04:50.20ちょっとしたGUIアプリならC#がいいと思う。
ScalaでGUIはないわ。
Scala使う場面って、Lift使ってアプリ作るくらいしか思い浮かばない。
しかも、Liftは実績がないから、仕事で使うのは難しいな。
今のところScalaはちょこっといじるくらいしか、意味がないんじゃないか?
現段階で、実用的なアプリをScalaで作ろうと思う人はある意味すごいよ。
0416デフォルトの名無しさん
2011/03/24(木) 21:14:11.010417デフォルトの名無しさん
2011/03/24(木) 21:20:05.150418デフォルトの名無しさん
2011/03/24(木) 21:34:43.010419デフォルトの名無しさん
2011/03/24(木) 23:07:47.63本格的には使ってないよ
0420デフォルトの名無しさん
2011/03/24(木) 23:26:09.84これだけあるのに?
https://github.com/twitter
419が言う本格的ってなんだろう・・・
0421デフォルトの名無しさん
2011/03/24(木) 23:29:24.94http://www.scala-lang.org/node/5130
0422デフォルトの名無しさん
2011/03/25(金) 00:36:39.970423デフォルトの名無しさん
2011/03/25(金) 01:12:58.91諸般の事情で、Javaで書いたコードにimplicitのマークを付けられないかと思ってるんだけど。
0424デフォルトの名無しさん
2011/03/25(金) 02:25:47.93コンパイル時にすべて解決されてる。
>Javaで書いたコードにimplicitのマーク
というのがなにをやりたいのかが、いまいちわからないが・・・?
仕組みというか、コンパイル後にどうなってるかしりたいなら、
scalacでコンパイルしてjadとかで、デコンパイルすることおすすめ
0425デフォルトの名無しさん
2011/03/25(金) 02:27:55.860426デフォルトの名無しさん
2011/03/25(金) 07:45:48.29scalacは、クラスファイルになってる変数なりメソッドがimplicitで宣言されてることを
どうやって知るのかな、と思って。
つまり、
public static Hoge hoge = ...
となっているJavaコードを、Scalaで言うところの
implicit val hoge: Hoge = ...
に見せかけたいわけです。
0427デフォルトの名無しさん
2011/03/25(金) 10:09:49.48Java厨なんですけどScalaの機能をJavaで実現したいんです!なんて
頭の悪い質問してると人生無駄にするよ
0428デフォルトの名無しさん
2011/03/26(土) 00:02:55.57public JavaClass{
public static Hoge foo(){ ... }
}
使う側のscalaのコードのどこかで、以下のように一行加えればいいんじゃないの?
ScalaClass{
implicit val bar = JavaClass.foo()
}
0429デフォルトの名無しさん
2011/03/26(土) 00:28:46.55REPLの補完でREST APIのJavaラッパを叩いて快適生活を送ろうとしたところ、
どうもobjectに入ってるメンバやimplicit conversionを補完してくれないみたいなので(バグ?)、
仕方なくJavaでstaticメソッドを実装して補完候補に出すという大変頭の悪いことをしているわけです。
既に、APIをリフレクションで走査してScalaラッパを自動生成するところまでやっているので、
ここでダメだとけっこうきつい。。W
0430デフォルトの名無しさん
2011/03/26(土) 00:31:23.01なるほど、とりあえずそれで乗り切ります。
0431デフォルトの名無しさん
2011/03/26(土) 01:41:54.42http://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_9_0_RC1
0432デフォルトの名無しさん
2011/03/26(土) 01:51:25.890433デフォルトの名無しさん
2011/03/26(土) 02:34:15.39再三の注意にもかかわらず2.9出すとは日本への宣戦布告ということか
0434デフォルトの名無しさん
2011/03/26(土) 02:39:54.460435デフォルトの名無しさん
2011/03/26(土) 14:52:38.93確かに追試してないなぁと思って、新規のsbt環境でやってみたら正常に動作した。。
色々設定いじってるのがいけないのかな。よく分からん。
ちなみに、sbt 0.7.4でscala 2.9.1.RC1を指定した上でconsoleを動かすとフリーズする。
こちらはWindows環境とMac環境の両方で試したので確か。
0436デフォルトの名無しさん
2011/03/26(土) 16:35:49.880437デフォルトの名無しさん
2011/03/27(日) 22:44:05.88これから先、NoSQL使えないAkkaに意味あるのか?
0438デフォルトの名無しさん
2011/03/28(月) 09:38:52.06何それ?
0439デフォルトの名無しさん
2011/03/28(月) 10:11:51.98のネタの続きだろ
0440デフォルトの名無しさん
2011/03/28(月) 10:19:12.030441デフォルトの名無しさん
2011/03/28(月) 11:17:27.08狼少年っぽいし。
0442デフォルトの名無しさん
2011/03/29(火) 08:32:21.660443デフォルトの名無しさん
2011/03/29(火) 12:26:05.33海外の人が同じようなこと言っててワロタ
http://twitter.com/#!/jamesiry/status/52384075041865728
0444デフォルトの名無しさん
2011/03/29(火) 17:59:46.27テラルを後から注入するにはどのように記述すれば良いのでしょう?
HogeImp3がやりたいことなのですが、クラスの下界限界設定とメソッドのそれ
とがうまく協調してくれないんです。
// covariant trait with func
trait Hoge[+T] {
def twice[U >: T](x: U): List[U]
}
// OK
class HogeImp[+T] extends Hoge[T] {
def f[U >: T](x: U): List[U] = List(x, x)
def twice[U >: T](x: U): List[U] = f(x)
}
case class HogeImp3[T, U >: T](f: U => List[U]) extends Hoge[T] {
def twice(x: U): List[U] = f(x)
/* ここでコンパイルエラー
* type mismatch;
* found : U(in method twice)
* required: U(in class HogeImp3)
* def twice[U >: T](x: U): List[U] = f(x)
* ^
*/
}
val x3 = new HogeImp3[Int, AnyVal]((x: AnyVal) => List[AnyVal](x, x))
関数リテラルは諦めてトレイトにするべきなのでしょうか?
0445444
2011/03/29(火) 18:22:31.46上記のHogeImp3だとtwiceに下界限界が無いのでoverrideしてないので
abstract必要ですというエラーになります。
def twice(x: U): List[U] = f(x)
/* error: class HogeImp3 needs to be abstract, since method twice in
* trait Hoge of type [U >: T](x: U)List[U] is not defined
*/
それならtwiceに下界限界を指定したらどうなるか、クラスの下界限界設定と
メソッドのそれとがうまく協調してくれないのでやっぱりエラーになります。
def twice[U >: T](x: U): List[U] = f(x)
/* error: type mismatch;
* found : U(in method twice)
* required: U(in class HogeImp3)
* def twice[U >: T](x: U): List[U] = f(x)
* ^
*/
0446デフォルトの名無しさん
2011/03/29(火) 22:08:57.02ジェネリックメソッドの代わりは無理なんじゃないかな、という気はする。
本当に出来ないかはしらね
0447444
2011/03/30(水) 10:05:25.87// covariant trait with func
trait Hoge[+T] {
def twice[U >: T](x: U): List[U]
}
// OK
trait HogeInject[+T] {
def f[U >: T](x: U): List[U] = List(x, x)
}
class HogeImp2[+T] extends HogeInject[T] with Hoge[T] {
def twice[U >: T](x: U): List[U] = f[U](x)
}
assert((new HogeImp2[Int]).twice(2.asInstanceOf[AnyVal]) == List[AnyVal](2, 2))
0448デフォルトの名無しさん
2011/03/30(水) 11:39:05.90abstract class F[+T] {
def f[U >: T](x:U) : List[U]
}
case class HogeImp3[+T](F:F[T]) extends Hoge[T] {
def twice[U >: T](x: U): List[U] = F.f(x)
}
val x3 = new HogeImp3[Int](new F[Int] { def f[U >: Int](x:U) = List(x,x) })
0450デフォルトの名無しさん
2011/03/30(水) 23:02:42.20http://www.scala-lang.org/node/8990
0451デフォルトの名無しさん
2011/03/30(水) 23:53:30.44前よりゴミになったから紹介するなよ
0452デフォルトの名無しさん
2011/03/30(水) 23:56:48.350453デフォルトの名無しさん
2011/03/31(木) 10:40:34.890454444
2011/03/31(木) 13:32:24.87関数リテラルを後から注入する方法について判明しましたので御報告。
trait Covariant[+T <: U, U] {
def twice[V >: T <: U](x: V): List[U]
}
case class CovariantImp[+T <: U, U](f: U => List[U]) extends Covariant[T, U] {
def twice[V >: T <: U](x: V): List[U] = f(x)
}
val x = new CovariantImp[Int, AnyVal]((x: AnyVal) => List[AnyVal](x, x))
assert(x.twice(2) == List[AnyVal](2, 2))
それにしても境界パラメータ宣言の『>: T <:』の部分が
「こうですか!?わかりません><」って言ってるように見えて困る...
おおすごい。
でも、それってもとの問題
> 共変宣言されているクラスに、共変を満たすように下界限界を設定した関数リ
> テラルを後から注入するにはどのように記述すれば良いのでしょう?
の解とはちょっと違わない?
それだと下界だけでなく上界も設定しないといけない。
0456444
2011/03/31(木) 21:45:35.64下界だけだとこうですね。
case class CovariantImp[+T <: U, U](f: U => List[U]) {
def twice(x: U): List[U] = f(x)
}
val x = new CovariantImp[Int, AnyVal]((x: AnyVal) => List[AnyVal](x, x))
assert(x.twice(2) == List[AnyVal](2, 2))
0457444
2011/03/31(木) 22:17:34.86下界と上界、共変と反変の型パラメータについて推奨の書き方(順序/変数名)ってあるんでしょうか?
みなさんどうやって書かれてます?
case class V[+T <: I, -U >: O, I, O](fl: I => O) { def f = fl(_) }
new V[Int, Int, Int, Int](x => x.hashCode)
new V[Int, Int, AnyVal, Int](x => x.hashCode)
new V[Int, Int, Any, Int](x => x.hashCode)
new V[Int, AnyVal, Int, Int](x => x.hashCode)
new V[Int, AnyVal, Int, AnyVal](x => x.hashCode)
new V[Int, AnyVal, AnyVal, Int](x => x.hashCode)
new V[Int, AnyVal, AnyVal, AnyVal](x => x.hashCode)
new V[Int, AnyVal, Any, Int](x => x.hashCode)
new V[Int, AnyVal, Any, AnyVal](x => x.hashCode)
new V[Int, Any, Int, Int](x => x.hashCode)
new V[Int, Any, Int, AnyVal](x => x.hashCode)
new V[Int, Any, Int, Any](x => x.hashCode)
new V[Int, Any, AnyVal, Int](x => x.hashCode)
new V[Int, Any, AnyVal, AnyVal](x => x.hashCode)
new V[Int, Any, AnyVal, Any](x => x.hashCode)
new V[Int, Any, Any, Int](x => x.hashCode)
new V[Int, Any, Any, AnyVal](x => x.hashCode)
new V[Int, Any, Any, Any](x => x.hashCode)
new V[AnyVal, AnyVal, AnyVal, Int](x => x.hashCode)
:
上界設定がAnyValなのに、入力にAnyをとることができるのは
やっぱりわかったようなわからないような不思議な感じがする...
new V[AnyVal, Any, AnyVal, Any]((x: Any) => x.hashCode.asInstanceOf[Any])
0458デフォルトの名無しさん
2011/04/03(日) 17:28:13.700459デフォルトの名無しさん
2011/04/06(水) 04:40:43.52http://jetbrains.dzone.com/articles/talking-about-akka-scala-and
akkaの作者が、2.10で入るんじゃねえの?的なこと言ってるけどまだはっきり決まってないっぽい
0460デフォルトの名無しさん
2011/04/06(水) 10:40:52.190461デフォルトの名無しさん
2011/04/06(水) 11:32:22.70http://groups.google.com/group/scala-stm-expert-group
0462デフォルトの名無しさん
2011/04/06(水) 12:33:47.11みんな何使ってるの?
0463デフォルトの名無しさん
2011/04/06(水) 12:39:41.800464デフォルトの名無しさん
2011/04/06(水) 12:43:00.76ワロタwwww
さすがにviとemacsよりは、eclipseの方がましだわ。
0465デフォルトの名無しさん
2011/04/06(水) 12:47:09.560466デフォルトの名無しさん
2011/04/06(水) 15:34:02.210467デフォルトの名無しさん
2011/04/06(水) 15:40:40.990468デフォルトの名無しさん
2011/04/06(水) 16:15:29.850469デフォルトの名無しさん
2011/04/06(水) 21:29:48.560470デフォルトの名無しさん
2011/04/07(木) 03:27:09.060471デフォルトの名無しさん
2011/04/07(木) 09:12:30.95Erlang を共同で開発した Joe Armstrong と Robert Virding 両氏が,Erlang が Java から多大な着想を得たことを認めている。
ErlangFactory 2011 SF で行われたインタビューで両氏は,Erlang では「プロセス」と呼んでいるものを作る上で,
Scala の Actor が大きな影響を与えているという,以前からあった噂をついに
肯定したのだ。さらに Erlang の VM が,かの有名な Java 仮想マシン (Java Virtual
Machine,JVM) のクローン同然のものであることも告白した。
0472デフォルトの名無しさん
2011/04/07(木) 09:29:15.28元記事のURLを載せないとフェアじゃない。
http://www.infoq.com/news/2011/04/erlang-copied-jvm-and-scala
Erlang Copied Scala's Actors & Erlang's VM is almost a Clone of the JVM
Posted by Sadek Drobi on Apr 01, 2011
0473デフォルトの名無しさん
2011/04/07(木) 10:08:11.740474デフォルトの名無しさん
2011/04/07(木) 11:09:11.270475デフォルトの名無しさん
2011/04/07(木) 11:17:58.85javaの一般公開が1995で、開発開始が1990
JVMの件は、直接関係ないんじゃないかな
0476デフォルトの名無しさん
2011/04/07(木) 11:36:55.18なかったとしたらあまりいい趣味のネタとは思えないな
0477デフォルトの名無しさん
2011/04/07(木) 12:45:11.82宗教戦争つーより、用途による。
本当に複雑なプログラムを書くなら、高機能なIDEに100万円出せる。
WEB系みたいに割とシンプルならemacsでいい。
言語の型有りか型無しかってのと同じ。
シンプルならperlでもOK。
でも割と難解なものをperlで書くと、指数的に作業がつらくなる。
perlをemacsで置き換えても、意味が変わらない。
0478デフォルトの名無しさん
2011/04/07(木) 19:42:56.98利用する側のコードをコンパイルしなおす必要がある」ってあるけど、これは何で?
Javaのインタフェースでは、そんなことは起きなかったと思うけど。
0479デフォルトの名無しさん
2011/04/07(木) 20:36:42.160480デフォルトの名無しさん
2011/04/07(木) 21:07:13.27プラグイン書くくらいならJava使った方がいい。
プラグインがゴミなうちは、rubyと同程度の扱いで、
Java未満なのは仕方が無い。
0481デフォルトの名無しさん
2011/04/07(木) 21:51:21.010482デフォルトの名無しさん
2011/04/07(木) 22:04:58.140483デフォルトの名無しさん
2011/04/07(木) 22:30:16.85まともなディベロッパーはscala使ってないから安心しろ
みんな言われなくても仕事ではJava使ってる
0484デフォルトの名無しさん
2011/04/07(木) 22:52:27.92○低レベルな
0485デフォルトの名無しさん
2011/04/07(木) 23:24:15.56けど実際にscala使ってるサービスってtwitter意外に何があるかしらない
0486デフォルトの名無しさん
2011/04/07(木) 23:30:55.360487デフォルトの名無しさん
2011/04/07(木) 23:36:53.830488デフォルトの名無しさん
2011/04/07(木) 23:53:26.890489デフォルトの名無しさん
2011/04/07(木) 23:58:47.00また低レベルな質問がw
0490デフォルトの名無しさん
2011/04/08(金) 01:39:42.17抽象valが1個しかなかったり、lazyを消すと出ないのですが・・
abstract class testClass {
val test:Int
val test2:Int
lazy val f:Int => Double = t => 1
}
class testSubClass extends testClass{
val test:Int= 1
val test2:Int = 1
println(f(0)) //ここでNullPointerが出る
}
0491デフォルトの名無しさん
2011/04/08(金) 02:42:20.46http://www.itmedia.co.jp/enterprise/articles/1104/07/news043.html
0492デフォルトの名無しさん
2011/04/08(金) 02:58:49.330493デフォルトの名無しさん
2011/04/08(金) 03:40:17.430494デフォルトの名無しさん
2011/04/08(金) 03:46:20.35Rubyがどうとかいってるようじゃ、まだまだレベルが低いな
0495デフォルトの名無しさん
2011/04/08(金) 03:47:02.01俺も雇ってくれ
0496デフォルトの名無しさん
2011/04/08(金) 03:50:33.160497デフォルトの名無しさん
2011/04/08(金) 04:04:32.10とりあえず2.8.1のREPLで試したら再現しないけど。versionと環境は?
0498デフォルトの名無しさん
2011/04/08(金) 04:10:11.59ScalaはJavaじゃないから当たり前
0499デフォルトの名無しさん
2011/04/08(金) 23:01:44.63Obj-Cの洗練された言語仕様は全く理解できず
コボルのようなコーディングができることに心血を
注いだ結果
糞言語Javaが完成しましたー
0500デフォルトの名無しさん
2011/04/08(金) 23:14:25.78Objective-Cみたいなうんこ言語にならなくて本当に良かったな
0501デフォルトの名無しさん
2011/04/08(金) 23:39:21.52scalaのバージョンは2.8.1で、
NetBeans6.9.1+nb-scala-6.9v1.1.0で作業しています。
-Xcheckinit を付けていたのが原因のようで、
それを付けるとREPLでもエラーが出ました。
が、何故なんでしょう。。
0502デフォルトの名無しさん
2011/04/09(土) 01:10:26.66NextStep使ってたことあるけど軽くて使いやすいいいOSだった
0503デフォルトの名無しさん
2011/04/09(土) 01:34:22.850504デフォルトの名無しさん
2011/04/09(土) 02:14:45.32Objective-CはSmalltalkもろにパクッただけよ
Cと混ぜることに心血を注いだ糞言語
0505デフォルトの名無しさん
2011/04/09(土) 02:14:53.350506デフォルトの名無しさん
2011/04/09(土) 02:33:05.78使ったことがあるやつはほとんどいないだろうけど
0507デフォルトの名無しさん
2011/04/09(土) 11:24:31.300508デフォルトの名無しさん
2011/04/09(土) 11:58:43.610509デフォルトの名無しさん
2011/04/09(土) 12:26:04.28ハードウェアの現物を見たことはあるよ!w
0510デフォルトの名無しさん
2011/04/09(土) 21:24:25.140511デフォルトの名無しさん
2011/04/09(土) 21:59:39.22NEWSを買った人もSGIを買った人もDEC Alphaを買った人も昔の職場にいたな
0512デフォルトの名無しさん
2011/04/10(日) 04:56:37.99そしてscala関係ねぇ
0513デフォルトの名無しさん
2011/04/13(水) 08:14:26.990514デフォルトの名無しさん
2011/04/13(水) 20:09:38.330515デフォルトの名無しさん
2011/04/13(水) 20:11:17.420516デフォルトの名無しさん
2011/04/14(木) 02:04:15.85Avoid mutable state but don't demonize it.
0517デフォルトの名無しさん
2011/04/14(木) 19:59:26.47http://www.artima.com/forums/flat.jsp?forum=270&thread=324660
わっしょいわっしょい
最近出た原書2版かじり始めようかと思ってたのだけどこれで済ませちゃおう
0518デフォルトの名無しさん
2011/04/14(木) 21:52:24.09http://scala.playframework.org/
0519デフォルトの名無しさん
2011/04/16(土) 00:27:52.20http://www.scala-lang.org/node/9222
0520デフォルトの名無しさん
2011/04/16(土) 09:20:01.090521デフォルトの名無しさん
2011/04/16(土) 13:13:52.450522Emptyさん
2011/04/16(土) 14:05:17.590523デフォルトの名無しさん
2011/04/16(土) 14:22:41.860524デフォルトの名無しさん
2011/04/16(土) 21:27:01.730525デフォルトの名無しさん
2011/04/17(日) 08:48:21.160526デフォルトの名無しさん
2011/04/17(日) 16:12:46.87ttp://scala-tools.org/mvnsites/liftweb-2.3/net/liftweb/common/Box.html
0527デフォルトの名無しさん
2011/04/17(日) 18:15:04.33http://oss.infoscience.co.jp/scala/www.assembla.com/wiki/show/liftweb/Box.html
0528デフォルトの名無しさん
2011/04/17(日) 19:35:28.18こんなwikiあるんだ
いいものを知った
0529デフォルトの名無しさん
2011/04/17(日) 19:39:10.73これの日本語訳ですじゃ
0530デフォルトの名無しさん
2011/04/20(水) 23:12:58.58ブロックの前に記述したりできる?
def foo(x:Int) = transaction {
...
}
言いたいこと分かるかな?
こんな感じで書けたらアスペクト指向っぽいことができるかなと思ったんで。
0531デフォルトの名無しさん
2011/04/21(木) 00:27:25.460532デフォルトの名無しさん
2011/04/21(木) 00:29:09.090533デフォルトの名無しさん
2011/04/21(木) 00:32:49.440534デフォルトの名無しさん
2011/04/21(木) 00:52:34.20yuroyoro氏と水島氏が書いてるとTwitterで言っていた気がするが、それらとは別のものだろうか
0535デフォルトの名無しさん
2011/04/21(木) 22:33:18.300536デフォルトの名無しさん
2011/04/21(木) 23:49:39.070537デフォルトの名無しさん
2011/04/21(木) 23:51:57.200538デフォルトの名無しさん
2011/04/22(金) 00:23:50.70ありがとう。脳からカウパー液出たわ。
0539デフォルトの名無しさん
2011/04/22(金) 07:50:28.220540デフォルトの名無しさん
2011/04/22(金) 08:10:13.64なんだかPerlと同じにおいがする...
後からソース見直した時分かりにくくない?
まだScalaの流儀に慣れてないからだろうけど
0541デフォルトの名無しさん
2011/04/22(金) 10:37:16.50pythonでもやってなさい
0542デフォルトの名無しさん
2011/04/22(金) 11:03:27.49Javaでもやってなさい
0543デフォルトの名無しさん
2011/04/22(金) 13:22:35.79> まだScalaの流儀に慣れてないからだろうけど
根本的に何も理解してないから。よりによってPerlとは…
0544デフォルトの名無しさん
2011/04/22(金) 14:29:41.25だから一回Haskellやってから来いと
0545デフォルトの名無しさん
2011/04/22(金) 15:07:33.630546デフォルトの名無しさん
2011/04/22(金) 19:55:57.580547デフォルトの名無しさん
2011/04/22(金) 21:36:38.450548デフォルトの名無しさん
2011/04/22(金) 22:24:15.39その差か解消できないチームとかだとカオスになりそうな感じはあるな。
でもそれでも手を出したくなる良いとこ取り言語なんだよな.
…
0549デフォルトの名無しさん
2011/04/22(金) 22:30:24.960550デフォルトの名無しさん
2011/04/22(金) 23:05:54.70def main(ゲソ: Array[String]) {
val イ = (1 + 1) の 計算 を しなイカ
val カ = 3 を 倍 に しなイカ
val 娘 = "スイカ" の 料理 を 作らなイカ
println(イ)
println(カ)
println(娘)
}
0551デフォルトの名無しさん
2011/04/23(土) 00:21:30.270552デフォルトの名無しさん
2011/04/23(土) 02:29:17.19https://github.com/rirakkumya/scalaSample/blob/master/ika.scala
http://twitpic.com/43mzap
だれか解説よろしく
0553デフォルトの名無しさん
2011/04/23(土) 12:48:10.61ってちょっと違くね?scalaに限らずあまりメジャーじゃなくてもその言語でのいい条件の仕事が転がってるなら
覚えた方がいいじゃん。向上心のないやつは一生Javaで安い仕事やってればいいんじゃねぇの?
0554デフォルトの名無しさん
2011/04/23(土) 13:00:38.450555デフォルトの名無しさん
2011/04/23(土) 13:31:00.85Scalaとかある程度できますって人と一緒に仕事したいよな
0556デフォルトの名無しさん
2011/04/23(土) 13:52:44.480557デフォルトの名無しさん
2011/04/23(土) 14:06:07.550558デフォルトの名無しさん
2011/04/23(土) 14:10:01.090559デフォルトの名無しさん
2011/04/23(土) 18:25:06.93激しく同意
0560デフォルトの名無しさん
2011/04/23(土) 19:09:56.160561デフォルトの名無しさん
2011/04/23(土) 19:11:28.18http://d.hatena.ne.jp/xuwei/20110423/1303553373
0562デフォルトの名無しさん
2011/04/23(土) 19:28:36.960563デフォルトの名無しさん
2011/04/23(土) 19:33:48.560564デフォルトの名無しさん
2011/04/23(土) 19:42:15.59詳しく知らないんだが、ceylonの仕様の神具合を書いてみてくれ
0565デフォルトの名無しさん
2011/04/23(土) 19:49:35.490566デフォルトの名無しさん
2011/04/23(土) 19:56:55.92printlnでは何が出てくるの?
0567デフォルトの名無しさん
2011/04/23(土) 19:57:18.36私は Scala が好きです。Scala は私のお気に入りのプログラミング言語なのです。
これまで数多くの開発組織で,Scala に関する話をしてきました。
しかしその後の Scala の普及状況を見たとき,私はこの言語が Ruby や,
あるいは Python の採用レベルにさえも達しそうもないことに気付いたのです。
0568デフォルトの名無しさん
2011/04/23(土) 22:34:17.170569デフォルトの名無しさん
2011/04/24(日) 00:00:02.86特集5:3時間で次世代言語がわかる!?
JavaユーザーのためのScala早わかり
0570デフォルトの名無しさん
2011/04/24(日) 00:21:11.740571デフォルトの名無しさん
2011/04/24(日) 00:38:20.81窓際プログラマーである私の救世主となってくれるのでしょうか?
0572デフォルトの名無しさん
2011/04/24(日) 00:46:28.530573デフォルトの名無しさん
2011/04/24(日) 01:00:10.900574デフォルトの名無しさん
2011/04/24(日) 01:46:09.14572 はなにがしたいんだ?
0575デフォルトの名無しさん
2011/04/24(日) 04:06:25.240576デフォルトの名無しさん
2011/04/24(日) 13:01:20.63http://www.infoq.com/jp/news/2011/04/ceylon
scalaが複雑と思ったので作ったようなので、
scalaあればいらないんじゃないか?みたいな反応
0577デフォルトの名無しさん
2011/04/24(日) 14:10:48.59javaとの相互運用性は落ちそうってのがどういう目的なんだろう。
redhatなので投入先は、管理ツールやJBOSSのライブラリとツールなんだろうか?
0578デフォルトの名無しさん
2011/04/24(日) 23:06:25.12STMが組み込みとかいろいろScalaより機能的に優れてる点はあるからわかるんだけど、
ceylonは、「Scalaは複雑すぎるから、もうちょっとシンプルにJavaを拡張しました」程度の印象で、
「Scalaより明らかに優れた機能」とかが見当たらないんだけど・・・どうなの?
この解釈間違ってる?
0579デフォルトの名無しさん
2011/04/24(日) 23:09:21.950580デフォルトの名無しさん
2011/04/24(日) 23:46:16.39というかなんかceylonってvb.netくさい…ような…。
.net意識してるよね、明らかに。
けどその中で駄目っ子のvb.netを最も意識してるように見える。
しかし赤帽もなんでこんな事するかな…。
0581デフォルトの名無しさん
2011/04/24(日) 23:47:15.090582デフォルトの名無しさん
2011/04/24(日) 23:52:25.900583デフォルトの名無しさん
2011/04/25(月) 00:09:48.32Clojureが失速したのも他の言語が真似できるような機能しかなかったからだろ
0584デフォルトの名無しさん
2011/04/25(月) 00:13:29.02でも例えば、STMってScalaの場合副作用ある操作が原理的にできちゃうけど、
Clojureの場合組み込みだから原理的に副作用ある操作が禁止できてHaapyとかじゃなくて?
0585デフォルトの名無しさん
2011/04/25(月) 00:17:32.570586デフォルトの名無しさん
2011/04/25(月) 05:04:33.470587デフォルトの名無しさん
2011/04/25(月) 07:23:41.97フローチャートで設計する旧型世代ばっかり
だったからなぁその文化で言語作ったんだろう
0588デフォルトの名無しさん
2011/04/25(月) 12:17:03.49> そいつは…scalaでも取り込めるような。
それ言い出したら多くの言語が同じになってしまう。
0589デフォルトの名無しさん
2011/04/25(月) 21:17:21.85という考え方だってあるわけだしな。
0590デフォルトの名無しさん
2011/04/25(月) 22:43:17.390591デフォルトの名無しさん
2011/04/26(火) 01:35:57.66ログ出力のためだけにコンパニオンオブジェクトとか定義するのはアホらしいし、
かといってログ出力ごときがインスタンス変数になるのもアホらしいし。
0592デフォルトの名無しさん
2011/04/26(火) 02:00:10.92mixinするか、もしくはpackage objectに定義するとかが1番コード量は少ないかと。
この辺はもう好みの問題じゃね?
0593デフォルトの名無しさん
2011/04/26(火) 02:02:08.88今私は,この件で私を無知と呼んだすべての人々に対して,多大な謝罪を求めます。特に Scala ファン,あなた方に,ね ;-)
0594デフォルトの名無しさん
2011/04/26(火) 02:10:35.72単にそれっぽい発言だからということで貼る俺って素敵、まで読んだ
0595デフォルトの名無しさん
2011/04/26(火) 02:22:21.650596デフォルトの名無しさん
2011/04/26(火) 07:39:06.51どういう意図なのか説明頼む
0597デフォルトの名無しさん
2011/04/26(火) 08:10:26.390598デフォルトの名無しさん
2011/04/26(火) 08:54:38.260599デフォルトの名無しさん
2011/04/26(火) 09:07:49.60Ceylonはメソッド名にASCIIしか認めてないらしいけど、なんでそんな制限をしているのかさっぱりわからない
0600デフォルトの名無しさん
2011/04/26(火) 10:27:48.970601デフォルトの名無しさん
2011/04/26(火) 11:13:07.790602デフォルトの名無しさん
2011/04/26(火) 22:18:04.450603デフォルトの名無しさん
2011/04/26(火) 22:33:49.17こうですか?`
0604デフォルトの名無しさん
2011/04/26(火) 23:06:16.110605デフォルトの名無しさん
2011/04/26(火) 23:07:51.37JavaTeaに対して、CeylonTeaという名前をつけたくらいしか、笑えるところない言語だもんな。
まだ、仕様をきめただけで、実装もまだ、開発環境もまだ、、だよ。
5年くらい開発が進まないと、話にもならない。
Scalaはようやく開発環境もそろってきて、いろんな話できる段階に来た。
0606デフォルトの名無しさん
2011/04/27(水) 00:03:10.112.9.0RC2のお知らせ
0607デフォルトの名無しさん
2011/04/27(水) 00:22:10.88RC2公開かよ
0608デフォルトの名無しさん
2011/04/27(水) 00:23:30.780609デフォルトの名無しさん
2011/04/28(木) 00:47:39.18他のコミュニティに喧嘩売りまくっても、どんどん雰囲気が悪くなるだけだ。
自分がScala界の発展を背負うんだ、くらいの気負いがあるのかもしれないが、
ムーブメントはみんなで作り上げていくものだ。君だけのものじゃない。
0610デフォルトの名無しさん
2011/04/28(木) 07:30:49.27そんな奴はいない
0611デフォルトの名無しさん
2011/04/28(木) 10:08:07.390612デフォルトの名無しさん
2011/04/28(木) 18:58:30.76ノイローゼじゃね?
0613デフォルトの名無しさん
2011/04/29(金) 04:25:51.37TwitterでよくScalaの事書いてる某氏のこと?
0614デフォルトの名無しさん
2011/04/29(金) 04:27:19.87自分、不器用でScala。
0615デフォルトの名無しさん
2011/04/29(金) 04:38:40.41誰だよ
0616デフォルトの名無しさん
2011/04/29(金) 06:47:00.210617デフォルトの名無しさん
2011/04/29(金) 13:21:18.94指定した複数種類のキーワードごとに、出現回数をカウントしたいだが、どうすれば?
Scalaだと簡潔にかけるかなあ?
0618デフォルトの名無しさん
2011/04/29(金) 13:37:00.30なにその宿題
0619デフォルトの名無しさん
2011/04/29(金) 14:03:25.74質問が大雑把すぎないか?
0620デフォルトの名無しさん
2011/04/29(金) 14:09:28.022chなんて所詮そんな場所だろ?
それとも2ch以外での活動を批判したいのかわからないけど、
直接名前だすか、もっと具体的にどこが悪いのか指摘したほうがいいんじゃねぇの?
仮に、そういう人が存在するなら本人のためにも。
あいまい過ぎて何が言いたいのかわからない。
0621デフォルトの名無しさん
2011/04/29(金) 15:18:51.26ごめん。
Ceylonとかの話するよりかは建設的と思ったので。
Ceylonとかって、OSの設定とかいじったりするスクリプトを狙っているのだろう?
Scalaでもスクリプト書くのは十分容易なはず。
0622デフォルトの名無しさん
2011/04/29(金) 16:03:33.99短いのはGaucheで書いてるわ
0623デフォルトの名無しさん
2011/04/29(金) 17:57:47.61import scala.io.Source
val file = "foo.csv"
var keyword = "hoge"
val csv : Array[Array[String]] =
Source.fromFile(file).getLines.map(_.split(",")).toArray
val n = csv.flatten.filter(_ == keyword).length
println(n)
これでどうだ!
0624デフォルトの名無しさん
2011/04/29(金) 18:18:31.36確かに建設的な議論をすべきだな。ちなみに>>623は自前でCSVをパースしているが
ちゃんとやるにはopencsvなどライブラリを使うべき。
import au.com.bytecode.opencsv.CSVReader
val file = "foo.csv"
val keyword = "hoge"
val csv = new CSVReader(new FileReader(file)).readAll();
val n = csv.flatten.filter(_ == keyword).length
0625デフォルトの名無しさん
2011/04/29(金) 21:06:50.610626デフォルトの名無しさん
2011/04/29(金) 21:27:42.480627デフォルトの名無しさん
2011/04/29(金) 22:08:24.390628デフォルトの名無しさん
2011/04/29(金) 22:14:31.950629デフォルトの名無しさん
2011/04/29(金) 22:22:30.29Thanks!
だけども、いまだに、こういうやりかたに慣れないなあ。
2つとも、ファイルの全内容を、Array変数 csv に格納したあとでflatten.filter しているけど、
もしも
・1ファイルが大きい場合は、Array変数あふれるのでは?
・Keywordが複数ある場合は、flatten.filter を複数回やるの?
とか考えちゃう。
単純に、
Foreach F ∈ {指定ディレクトリ内の全.csvファイル}
__ Foreach L ∈ {ファイルFから一行づつ取り出し} begin
___ ___ if (Lはword1を含む) count1 = count1 +1
___ ___ if (Lはword2を含む) count2 = count2 +1
___ end
みたいに、やりたいのだが、、。 逐次処理的だけど。
0630デフォルトの名無しさん
2011/04/29(金) 22:41:56.89そういう書き方をするなら、scalaで書いても他の言語と大差ないと思うよ。
var count1 = 0
var count2 = 0
for(F <- ...) {
for(L <- ...) {
if(L contains word1) count1 += 1
if(L contains word2) count2 += 1
}
}
0631デフォルトの名無しさん
2011/04/29(金) 22:46:34.29問題文には複数のキーワードってあるから結果はMapにすべきなんジャマイカ。
import au.com.bytecode.opencsv.CSVReader
val file = "foo.csv"
val keyword = "hoge"
val csv = new CSVReader(new FileReader(file)).readAll();
val result: Map[String, Int] = keywordList.map {
keyword => (keyword -> csv.flatten.filter(_ == keyword).length)
}.toMap
0632デフォルトの名無しさん
2011/04/29(金) 22:58:35.98flattenが複数呼ばれるのがいやなら、先に束縛しておけばおk。
val file = "foo.csv"
val keywordList = List("hoge", "piyo")
val csv : Stream[Array[String]] = Source.fromFile(file).getLines.map(_.split(",")).toStream
val words = csv.flatten
val result: Map[String, Int] = keywordList.map {
keyword => (keyword -> words.filter(_ == keyword).length)
}.toMap
0633デフォルトの名無しさん
2011/04/29(金) 23:03:29.47ってどういうことだろう。配列の最大長を超えるってこと?どんなCSVやねん。
0634デフォルトの名無しさん
2011/04/29(金) 23:09:42.79> val words = csv.flatten
ここで一気に読まれないの?
0635デフォルトの名無しさん
2011/04/29(金) 23:19:52.20遅延リストのflattenは Haskellでは一気に評価されないのでScalaでも同様だと
思ったけど、よく考えたら違うかも。
0636デフォルトの名無しさん
2011/04/29(金) 23:29:08.64ScalaでもHaskellと同様に遅延される。評価は必要なときまで行われない。
https://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_8_1_final/src//library/scala/collection/immutable/Stream.scala
450 override def flatten[B](implicit asTraversable: A => /*<:<!!!*/ Traversable[B]): Stream[B] = {
451 def flatten1(t: Traversable[B]): Stream[B] =
452 if (!t.isEmpty)
453 new Stream.Cons(t.head, flatten1(t.tail))
454 else
455 tail.flatten
456
457 if (isEmpty)
458 Stream.empty
459 else
460 flatten1(asTraversable(head))
461 }
0637デフォルトの名無しさん
2011/04/29(金) 23:40:58.53俺が考えるとmutableなマップを用意して+1するようなやり方になっちゃう
import java.io.File
import au.com.bytecode.opencsv.CSVReader
import collection.{mutable, breakOut}
val path = """c:\fizz\buzz"""
val keywords = List("hoge", "fuga")
val result: mutable.Map[String,Int] = keywords.map(_ -> 0)(breakOut)
for {
csv <- new File(path).list.filter(_.endsWith(".csv"))
word <- new CSVReader(new FileReader(csv)).readAll().flatten
if result.contains(word)
} result(word) += 1
0638デフォルトの名無しさん
2011/04/29(金) 23:47:27.32検索したら見つけた
要約すると Source.fromFile(...).getLines は遅延されてるから問題ない
逆に collection.immutable.Stream を使うと処理は遅延されるけど、
結局メモリに読み込まれるから駄目
0639デフォルトの名無しさん
2011/04/29(金) 23:59:45.59なるほど。確かに今回は遅延リスト(Stream)ではなくIteratorのようなTraversableOnceを使うべきか。
val file = "foo.csv"
val keywordList = List("hoge", "piyo")
val csv : Iterator[Iterator[String]] = Source.fromFile(file).getLines.map(_.split(",").toIterator)
val result = csv.flatten.foldLeft(Map[String,Int]()) {
case (store, item) if keywordList.contains(item) =>
store.updated(item, store.get(item).getOrElse(0) + 1)
case (store, _) => store
}
0640デフォルトの名無しさん
2011/04/30(土) 05:03:01.65Strameは2回以上使う予定がある場合。
という違いだよな?
Iteratorは一度使いきってしまったら、もう一度Iterator自体を生成しないと同じことができない、使いきりのもの。
そのかわり一度走査した要素を保持しないからメモリは消費しない。
Streamは、初回の評価は遅延されるけど、2回目以降はメモ化されているというか。
(この場合メモ化っていう言い方があってるのかわからないけど)
SourceのgetLinesが返すのはIteratorだから、そのIteratorを何度も使う場合は、
toListやtoStreamなどして違うcollectionに変換する必要がある。
逆に1回きりしか使わないのであればIteratorのまま使ったほうがよい。
0641デフォルトの名無しさん
2011/04/30(土) 05:43:59.960642デフォルトの名無しさん
2011/04/30(土) 06:11:21.01メモリに余裕がないとか、
次読み込むときには内容が変わってる可能性がある
という場合以外は、メモリに保持しておいたほうが、2回目以降のアクセスがはやくできて便利じゃないの?
0643デフォルトの名無しさん
2011/04/30(土) 09:16:03.11同意。最近のコンピュータはメモリたくさん積んでるから、数万行あるCSVファイルを
メモリに展開してもけっこう問題なかったりする。>>617の例だと読むのは一度でよいが、
より複雑な場合だとメモリに保持して置いた方がよいね。
開発の早い段階での効率化は悪だっていう説もあるから、あとで実際に問題になってから
考えるのでもよさそう。
0644デフォルトの名無しさん
2011/04/30(土) 12:03:33.660645デフォルトの名無しさん
2011/04/30(土) 12:38:47.660646デフォルトの名無しさん
2011/04/30(土) 21:21:26.17海外製のソフトは日本語対応がいい加減だよね
0647デフォルトの名無しさん
2011/04/30(土) 21:58:41.402byte目にバックスラッシュとか…
0648デフォルトの名無しさん
2011/04/30(土) 23:53:19.70データがExcel -> poi で読む -> Iterator[String]
データをデータベースから -> Iterator[String]
メモリ上の配列 -> Array#toIteratorで変換 -> Iterator[String]
いずれにせよ、あとはIterator[String]をmapやfilterやfoldで処理して終わり。
ひょっとしてScala最強なんじゃないか。
0649デフォルトの名無しさん
2011/05/01(日) 00:16:38.250650デフォルトの名無しさん
2011/05/01(日) 04:16:11.32べつにどんな言語でもある程度似たようなことできるんじゃね?
あと、ArrayをわざわざIteratorにする意味がわからんが?
0651デフォルトの名無しさん
2011/05/01(日) 08:34:57.26JavaやC#はmap, filterができないお。
あと、こういう作りだと単体テストが楽だお。
モックとかいちいち用意しなくても引数を切り替えるだけだお。
Array#toIteratorは確かにいらなかったお。
0652デフォルトの名無しさん
2011/05/01(日) 11:10:23.950653デフォルトの名無しさん
2011/05/01(日) 11:40:55.19Aggregate - foldl
Select - map
Where - filter
という感じだね
LazyなリストはIEnumerableで表現する
>>651はLINQでぐぐるといいよ(福岡のアイドルグループじゃないほうな)
0654デフォルトの名無しさん
2011/05/01(日) 11:57:09.010655デフォルトの名無しさん
2011/05/01(日) 13:01:23.22C#って中途半端に関数型だから使いにくいんだよね。例えば列の直積を取りたいとき、
// C# 4.0
IEnumerable<Tuple<A,B>> prod<A,B>(IEnumerable<A> xs, IEnumerable<B> ys) {
return xs.SelectMany(x => ys.Select(y => new Tuple<A,B>(x, y)));
}
// Scala 2.8
def prod[A,B](xs: Seq[A], ys: Seq[B]) =
xs.flatMap(x => ys.map((x,_)))
俺はScalaの方がいいな。
0656デフォルトの名無しさん
2011/05/01(日) 14:42:45.03ほぼ同じじゃん。
0657デフォルトの名無しさん
2011/05/01(日) 14:44:21.24んー
まあ関数型と思って見れば足りないものがいろいろ多いのは同意だけど
その「中途半端に関数型」な部分がなんも無いよりは、あったほうが俺は便利だと思うな
Javaと比較しての話
0658デフォルトの名無しさん
2011/05/01(日) 16:57:19.28素直にループ/イテレーションさせて書くのが正解だと思うが
標準のコレクションのmap,filterとかの高階メソッドじゃなくシーケンス内包
javaには無いって話だけど、標準にはないけどCommons Collectionsにはあるし
0659デフォルトの名無しさん
2011/05/01(日) 18:01:37.33日本語おかしくて何が言いたいのかわからん
0660デフォルトの名無しさん
2011/05/01(日) 20:14:11.42別にそこまでおかしくないだろ。
でも具体的なソース無しにCommons Collections だとできるとか言われても
よくわからんな。ホントかどうかも怪しい。
0661デフォルトの名無しさん
2011/05/01(日) 21:18:03.42ことだなあ。
1. 高階関数を使うと、型宣言の嵐になる。
2. メソッド呼び出しが後置形式なので、関数適用が順に並ばない
たとえば filter g . map f xがfilter(g, x.map(f))みたいになる。
まあOOPとFPを共存させる上でやむを得ないとはわかっているんだけどね。
0662デフォルトの名無しさん
2011/05/01(日) 21:42:38.50確かに。関数型言語度で並べるならこんな感じか。
Java < C# <<< Scala < F# < Haskell
0663デフォルトの名無しさん
2011/05/01(日) 21:52:31.03それともScalaみたいな言語が使われるのか、
それとも、両方残って使い分けられるのか?
少なくとも、「純粋なオブジェクト指向だけ」っていうのは流行らなくなるんだろうな。
Javaもクロージャとか取り込むわけだし
0664デフォルトの名無しさん
2011/05/01(日) 21:56:16.33という点だけ考えたら、べつにJVM上でなくてもよかったわけで、
Javaとの互換性とか考えずにネイティブで動く言語を一から作ったら、
もうちょっと綺麗な言語仕様になるんだろうな。
まぁ流行るかどうかはべつにして
0665デフォルトの名無しさん
2011/05/02(月) 01:47:15.86Java < C# <<< Scala
ではなく
Java <<< C# < Scala
だと思うけど。
C#は何かと新しい。
0666デフォルトの名無しさん
2011/05/02(月) 11:10:07.87Haskellのtype classはうまいことFPにOOPを組み合わせてる。
type alias, associateid type access, implicit argument dedection,
multi-type traitsあたりをちゃんと機能させて、既存のclassを使って、
新規にclass定義せずに型安全にOOP出来るのはHaskellくらい。
他の言語はtraits/concept辺りの機能が弱すぎ。
0667デフォルトの名無しさん
2011/05/02(月) 11:53:10.15OOPといえるのだろうか
0668デフォルトの名無しさん
2011/05/02(月) 12:26:49.260669デフォルトの名無しさん
2011/05/02(月) 12:36:09.70Mark Jonesがtype classを提案した頃からHaskellとは
付き合ってきているつもりだが…ICFPにまだ出てないような
最新動向は確かに知らない。
元の話題について。
OOPとFPとの統合で難しい点のひとつはパラメトリック多相と
部分型多相の共存で、scalaもMLもそれで苦労しているね。
もちろん、破壊代入がなければ問題は生じないけれど。
0670デフォルトの名無しさん
2011/05/02(月) 13:27:39.07こういう勘違いが本当に悲しい。
C#は確かに進化しているけど、型推論は永遠に中途半端、パターンマッチできない、lazy評価ができない、
nullぽが普通に起きる、対話環境ない、LINQによってやっとmap,filterができる、でもペアすらない。
C# <<< Scala は明らか。
0671デフォルトの名無しさん
2011/05/02(月) 13:49:52.60IDEの支援とどっちを取るかだね。
0672デフォルトの名無しさん
2011/05/02(月) 13:52:29.22自分的にはC#より関数型だなあって思うのはなるたけ副作用を嫌うとこ(valとかimmutableコレクションとか)と
文じゃなくて式なのが多いとこかなぁって思ってたけど
0673デフォルトの名無しさん
2011/05/02(月) 14:07:16.71ペアってTupleのこと?
TupleならC#4.0から、使いづらいけど一応あるよ
0674デフォルトの名無しさん
2011/05/02(月) 15:18:30.56つ CsharpRepl
LINQによってmap,filter云々てのもなんかおかしくね
ジェネリックなシークエンスと
ラムダ式やファーストクラスの関数がサポートされていることが本質的で
その辺があるのなら、(もし)なくても作ればいいだけ、簡単だし…
ML族に比べたらScalaの型推論も十分半端
まあ結論には特に異は唱えないけど
ゼロイチじゃなくてただの程度問題に見える
0675デフォルトの名無しさん
2011/05/02(月) 16:30:45.170676デフォルトの名無しさん
2011/05/02(月) 17:23:00.230677デフォルトの名無しさん
2011/05/02(月) 17:54:18.57構文とIDEの支援とどっちを取るかって構文に決まってるだろJK。
ソースコードは書くことと読むことどちらも大事なのはプログラマの常識だろう。
あとIDEの支援はあとから良くなることもあるしな。
>>673
//Scala 2.8
val (name, age) = getNameAndAge()
println(name+"さんは"+age+"歳です。")
//C# 4.0 (笑)
var nameAndAge = getNameAndAge();
System.out.println(nameAndAge.Item1+"さんは"+nameAndAge.Item2+"歳です。");
0678デフォルトの名無しさん
2011/05/02(月) 18:01:00.92それはペアっつーか、Extractorだろ。
0679デフォルトの名無しさん
2011/05/02(月) 18:33:11.60その言語のライブラリとか文化的に関数型パラダイムがなくて、
一人だけ関数型プログラミングやってたら単に痛いやつになっちゃう
0680デフォルトの名無しさん
2011/05/02(月) 18:42:53.470681デフォルトの名無しさん
2011/05/02(月) 21:19:20.82(x,y) => x + y
みたいなパターンマッチ式を書けるようになると嬉しい。
0682デフォルトの名無しさん
2011/05/02(月) 21:20:02.560683デフォルトの名無しさん
2011/05/02(月) 22:09:01.910684デフォルトの名無しさん
2011/05/02(月) 22:12:29.650685デフォルトの名無しさん
2011/05/02(月) 22:22:17.89できるよ。
List((1,2), (3,4)).map {case (x, y) => x+y}
0686デフォルトの名無しさん
2011/05/02(月) 23:23:35.451. 型推論の邪魔になるからオーバーロードがない
2. 単純なアップキャストですら明示的におこなわないと駄目
class a =
object
method a = 1
end;;
class b =
object
inherit a
method b = 2
end;;
[new a; new b];;
Error: This expression has type b but an expression was expected of type a
The second object type has no method b
こう書かなきゃ駄目
[new a; (new b :> a)];;
0687デフォルトの名無しさん
2011/05/02(月) 23:23:58.19class a =
object (self : 'a)
method value = 1
method calc (o: 'a) = self#value + o#value
end;;
class b =
object
inherit a
method value2 = 2
end;;
(new b :> a);;
Error: Type b = < calc : b -> int; value : int; value2 : int >
is not a subtype of a = < calc : a -> int; value : int >
Type a = < calc : a -> int; value : int > is not a subtype of
b = < calc : b -> int; value : int; value2 : int >
で、どの言語が中途半端だって?
0688デフォルトの名無しさん
2011/05/02(月) 23:27:39.540689デフォルトの名無しさん
2011/05/03(火) 01:51:03.15例えばScalaでいう
def hogehoge() = {
def calc(x: Int) = {
if (x > 0) x+1
else x-1
}
Array(1,2,3).map(calc)
}
みたいなことをC#でやろうとすると
private int calcHogehoge(int x) {
if (x > 0) return x + 1;
else return x - 1;
}
public Array<int> hogehoge() {
return [1,2,3].map(calcHogehoge);
}
みたいになってとっても残念な気持ちになる。
0690デフォルトの名無しさん
2011/05/03(火) 01:56:26.35ラムダでいいじゃん
0691デフォルトの名無しさん
2011/05/03(火) 01:58:23.380692デフォルトの名無しさん
2011/05/03(火) 02:18:50.02>>671
そのものズバリ、ラムダ式、匿名メソッドでぐぐればいいと思う
その例だと単に
new []{1, 2, 3}.Select(x => x > 0 ? x + 1 : x - 1)
とでも書くか、
Func<int, int> calc = delegate(int x) { .... };
とでも書く
別にC#のスレじゃないからC#知らなくてもいいと思うけど
ロクに知らないことまで無理して貶すのは如何なもんだろうか
0693デフォルトの名無しさん
2011/05/03(火) 03:02:44.36画像などのバイナリデータを簡単にダウンロードする方法はないのでしょうか?
0694デフォルトの名無しさん
2011/05/03(火) 03:15:23.490695デフォルトの名無しさん
2011/05/03(火) 03:17:44.09確かに細かな構文が違っていたのは謝る。でもラムダ式、匿名メソッドを知らない
わけじゃないよ。言いたかったのは、クロージャの式がある程度複雑になったときに
無名関数は適さないし、delegateは構文が重すぎだろ。
さらに構文だけじゃなくて、Genericsができないから実用上はとても使えない。
C#で内部関数を定義するためにdelegateをわざわざ使うのはあまり見ないけど
Scalaだと標準ライブラリ内でもよくあるってのは事実だろう。
0696デフォルトの名無しさん
2011/05/03(火) 06:51:07.75のようなことを総称つかってやれないでしょうか?
単純に[T]をつけてIntをTに置き換えただけだとfilterが働いていないようです
0697デフォルトの名無しさん
2011/05/03(火) 07:18:56.07素直な方法では無理じゃない?
JVMベースなので、コンパイル後に型情報を捨ててしまうため
実行時に参照できない。
0698デフォルトの名無しさん
2011/05/03(火) 07:33:11.93classmanifest使えばできると思う
0699デフォルトの名無しさん
2011/05/03(火) 07:38:49.44確かにScalaに直接関係ない部分での知識不足というか、説明不足というか下手というか、
言いたいことよくわからない人がでてきてて、それに突っ込む返信も多くなってしまって
微妙になってるな。
他の言語と比べること自体はありだとは思うが、話それてScalaに関係なくなってるのは…
0700デフォルトの名無しさん
2011/05/03(火) 08:03:34.17> C#って関数内関数ってできないよね。
できる。
>695
> 言いたかったのは、クロージャの式がある程度複雑になったときに
> 無名関数は適さないし、delegateは構文が重すぎだろ。
これは主観だからノーコメント。
> さらに構文だけじゃなくて、Genericsができないから実用上はとても使えない。
できる。
0701デフォルトの名無しさん
2011/05/03(火) 09:16:06.55匿名関数でGenericsできないだろ。できるのか?ぜひ教えてくれ。
構文が重いかどうかは確かに主観的だったな。
しかし、匿名関数以外でローカル関数定義はC#で見ないよな。これは事実じゃね?
0702デフォルトの名無しさん
2011/05/03(火) 09:40:13.34def f[T](l: Seq[Any])(implicit c:reflect.ClassManifest[T]): Seq[T] =
l.filter(c.erasure.isInstance _).map(_.asInstanceOf[T])
でプリミティブ以外はいけました。
erasure経由してるからかIntじゃなくてIntegerになってる。
0703デフォルトの名無しさん
2011/05/03(火) 09:48:34.11匿名関数でGenericsできないだろ。できるのか?ぜひ教えてくれ。
構文が重いかどうかは確かに主観的だったな。
しかし、匿名関数以外でローカル関数定義はC#で見ないよな。これは事実じゃね?
0704デフォルトの名無しさん
2011/05/03(火) 11:39:07.410705デフォルトの名無しさん
2011/05/03(火) 13:35:36.720706デフォルトの名無しさん
2011/05/03(火) 13:57:08.86ぼくの考えたさいきょうのこーど
def fwrite(filename: String, in: InputStream) = {
val out = new FileOutputStream(filename)
for (b <- Source.fromInputStream(in)) {
out.write(b)
}
}
0707デフォルトの名無しさん
2011/05/03(火) 14:01:40.740708デフォルトの名無しさん
2011/05/03(火) 15:33:11.84それはバイト単位の読み書きになりませんか?
0709デフォルトの名無しさん
2011/05/03(火) 17:27:14.20匿名関数でGenericsできないだろ。できるのか?ぜひ教えてくれ。
0710デフォルトの名無しさん
2011/05/03(火) 18:33:26.15def hoge() {
def foo[T](x: T) = ...
...
}
のfoo(ジェネリックなメソッド内メソッド)がC#では定義できないってことだよね?それならあってる。
この点はC#がScalaに比べて不利な点かもね。
0712デフォルトの名無しさん
2011/05/03(火) 20:28:49.34C#に追い付かれると困る人もいるんだよ
優越感のためにScalaを使ってる人とかさ
0713デフォルトの名無しさん
2011/05/03(火) 21:19:40.53だから巣に帰ってね
0714デフォルトの名無しさん
2011/05/03(火) 21:37:09.380715デフォルトの名無しさん
2011/05/03(火) 21:38:42.980716デフォルトの名無しさん
2011/05/03(火) 21:46:46.090717デフォルトの名無しさん
2011/05/03(火) 21:51:00.25ネタだとは思うが、そういうイタいことはやめれ
0718デフォルトの名無しさん
2011/05/03(火) 21:56:10.450719デフォルトの名無しさん
2011/05/03(火) 22:03:02.17という事実を認めない奴が多すぎる
0720デフォルトの名無しさん
2011/05/03(火) 22:05:19.16言語の優劣はともかく使ってるやつは間違いなく低能
0721デフォルトの名無しさん
2011/05/03(火) 22:33:00.45要はこういうの
def using[A <: { def close(): Unit }, B](resource: A)(body: A => B): B = try {
body(resource)
} finally {
resource.close()
}
0722デフォルトの名無しさん
2011/05/03(火) 22:40:28.36Predefにおいてほしいな
0723デフォルトの名無しさん
2011/05/03(火) 22:57:48.330724デフォルトの名無しさん
2011/05/03(火) 22:59:45.12Scala動かないだろうし
0725デフォルトの名無しさん
2011/05/03(火) 22:59:53.300726デフォルトの名無しさん
2011/05/03(火) 23:10:33.06http://www.scala-lang.org/node/9385
0727デフォルトの名無しさん
2011/05/03(火) 23:11:47.67Scalaでもそれに合わせて何か入るでしょう
0728デフォルトの名無しさん
2011/05/03(火) 23:13:58.07が気になるなあ。
どこにどんだけバグがあったんだろ。
0729デフォルトの名無しさん
2011/05/03(火) 23:18:42.51https://lampsvn.epfl.ch/trac/scala/browser/scala
tracで管理されてて全部公開されてるから、気になるならいくらでもみれるぞ
0730デフォルトの名無しさん
2011/05/03(火) 23:25:08.010731デフォルトの名無しさん
2011/05/03(火) 23:48:34.620732デフォルトの名無しさん
2011/05/03(火) 23:51:42.83具体的にどのあたりが?
0733デフォルトの名無しさん
2011/05/03(火) 23:52:55.55ただ、そのC#で何つくるのって話になると(笑)になるだけのこと
0734デフォルトの名無しさん
2011/05/03(火) 23:56:01.690735デフォルトの名無しさん
2011/05/03(火) 23:57:41.560736デフォルトの名無しさん
2011/05/04(水) 00:07:41.340737デフォルトの名無しさん
2011/05/04(水) 06:49:09.78多分年末くらいじゃないかな
2.8.0が出たのが2010年7月で、2.8.1が出たのが2010年11月だから
0738デフォルトの名無しさん
2011/05/04(水) 10:36:19.10バイト単位の書き込みに何か問題あったっけ?
0739デフォルトの名無しさん
2011/05/04(水) 19:46:07.86Source使うとバイト単位じゃなくてChar(2バイト)単位での読み書きになってしまうんじゃないかな
(で、それがむしろ問題なんじゃないかと)
0740739
2011/05/04(水) 19:49:57.49(FileInputStream#write(byte))問題なのではないかと。
0741708
2011/05/04(水) 20:37:02.88アクセス発生して遅いんじゃないかと思った。
0742デフォルトの名無しさん
2011/05/04(水) 20:46:46.850743デフォルトの名無しさん
2011/05/04(水) 21:05:33.620744デフォルトの名無しさん
2011/05/04(水) 21:37:25.74今のものを完全に置き換えるようなものなので、
既存のものをちょっとだけ改善してもどうせ捨てられるから意味ないしーという感じで、
今のAPIは誰もいじろうとしてないらしい
0745デフォルトの名無しさん
2011/05/04(水) 22:11:56.430746デフォルトの名無しさん
2011/05/04(水) 22:14:12.090747デフォルトの名無しさん
2011/05/04(水) 22:47:14.150748デフォルトの名無しさん
2011/05/05(木) 20:50:11.490749デフォルトの名無しさん
2011/05/05(木) 21:13:17.55え?始めたいときに始めればいいんじゃ?
0750デフォルトの名無しさん
2011/05/05(木) 21:24:05.01今時、「使える言語は一つだけです(キリッ」とか言ってる奴の方が、よっぽど使えない。
0751デフォルトの名無しさん
2011/05/05(木) 23:33:45.18他の静的型付け関数型言語でも使えるよ。
自分の趣味プログラムや細かい社内ツールにならまったく問題ないんだが
多人数である程度の期間やる商用の場合に使っていいかは迷う。
0752デフォルトの名無しさん
2011/05/06(金) 21:42:00.70「scalaでは」匿名関数でGenricsってできるの?マジ知りてーわ。
0753デフォルトの名無しさん
2011/05/06(金) 22:10:09.15C#はdelegateでできる
終了
0754デフォルトの名無しさん
2011/05/06(金) 23:44:26.13def foo = {
def id[A](x: A) = x
id(id[Int](_))
}
これはC#では絶対にできない。
0755デフォルトの名無しさん
2011/05/06(金) 23:52:00.470756デフォルトの名無しさん
2011/05/07(土) 08:28:10.340757デフォルトの名無しさん
2011/05/07(土) 08:33:38.040758デフォルトの名無しさん
2011/05/07(土) 08:49:08.10Scala: 出来る
C#: 出来ない
修了
0759デフォルトの名無しさん
2011/05/07(土) 11:05:00.96匿名関数でGenericsできないだろ。できるのか?ぜひ教えてくれ。
0760デフォルトの名無しさん
2011/05/07(土) 12:19:25.60匿名でgenericsって意味あるの?
0761デフォルトの名無しさん
2011/05/07(土) 18:35:02.51valとvarが目障り以外で教えてくれ
0762デフォルトの名無しさん
2011/05/07(土) 19:15:01.020763デフォルトの名無しさん
2011/05/07(土) 21:26:36.900764デフォルトの名無しさん
2011/05/07(土) 21:42:57.740765デフォルトの名無しさん
2011/05/07(土) 21:44:07.47若干型推論が弱い…kwsk
0766デフォルトの名無しさん
2011/05/07(土) 22:12:59.06//F#
let foo x = (x, x)
//Scala
def foo[A](x: A) = (x, x)
0767デフォルトの名無しさん
2011/05/07(土) 22:19:38.45いまいちピンとこない。
0768デフォルトの名無しさん
2011/05/07(土) 22:32:10.51http://www.developer.com/lang/other/article.php/3883051/Scala-vs-F-Comparing-Functional-Programming-Features.htm
これ読んだ?
0769デフォルトの名無しさん
2011/05/07(土) 22:42:38.99の記事には、scalaとF#はmixin以外はほぼ同じって書いてある。
scalaとF#ってほとんど同じなの?
0770デフォルトの名無しさん
2011/05/07(土) 22:51:29.33構文は全然違うけど、言語機能や思想はだいぶ近いと思うよ。
でもF#の方がより関数型っぽいキガス。
0771デフォルトの名無しさん
2011/05/07(土) 23:27:39.96>F#の方がより関数型っぽいキガス。
そうなのかー。
じゃあ、F#の本もちょっと買ってみるかな。
GUI作ったりするなら、やっぱり.NETの方がいいからね。
Scalaの場合は、ウェブアプリくらいしか、使い道が思い浮かばない。
Scalaで数値計算とかはやっぱ微妙だよね?
まあ、F#も微妙だろうけど?
0772デフォルトの名無しさん
2011/05/08(日) 01:34:18.36速度の限界目指さない用途ならそんなに困らないと思う。
糖衣構文ある分Javaより楽だけど不用意に使うと遅いこともあるんで、
JVMの限界目指すとJavaっぽい書き方になっていく
詳しくないがLAPACKみたいな用途だと突き詰めると
FORTRAN/C使えってことにならないの?
0773デフォルトの名無しさん
2011/05/08(日) 01:58:15.13>FORTRAN/C使えってことにならないの?
ガチンコで速度勝負ならそうなるよ。
例えば、実行速度が1.1倍になっただけでも、嬉しいならC言語で書くべき。
一方で、どんどん新しい数値計算処理コードを書く場合は、
実行速度と生産性の両方が重要になるよ。
もちろんrubyレベルの遅さは論外だけど、JavaやC#は許される。
pythonはちと厳しいかも。
0774デフォルトの名無しさん
2011/05/08(日) 03:35:05.32ScalaもF#も「静的型付け」の「非純粋関数型言語」であるという点で同じだね。
細くとしては、F#は、MicrosoftがOcamlっていうこれも「静的型付け」の「非純粋関数型言語」の言語を
参考に、「.NET」上で動く関数型言語を用意しようって目的で作られた。
で、Ocamlっていうのは、フランスのある機関が教育用につくった関数型言語である。
Scalaっていうのは、Javaのライブラリを使える関数型言語をつくるって目的でつくられた。
どれも親戚みたいなものだね。そして、目的(作られた経緯)がちゃんとあってすみわけされてる。
0775デフォルトの名無しさん
2011/05/08(日) 03:49:19.27ライブラリでカバーできない部分でも、高速化したい部分は自分でCで書いちゃえばいいし。
Cで書き直して高速化できるという点はrubyも同じ。
rubyもpythonもCと繋ぐのはそんなに難しくないです。
実はjavaもscalaもまるで分かってないのだけれど、
scalaの一部をjavaで書き直して高速化とか
javaで書かれた数値計算用ライブラリが使えるとか、
scalaにそういうのは無いの?
0776デフォルトの名無しさん
2011/05/08(日) 04:42:53.38標準のラッパーか、FFIで、DLL直接呼び出してる。
java/scalaもjpargmpってのを使ってる。これは、なんだろう?
http://shootout.alioth.debian.org/u32/performance.php?test=pidigits
F#の将来拡張用の予約語 (近年中の気配はない)
atomic break checked component const constraint constructor
continue eager event external fixed functor include method
mixin object parallel process protected pure sealed tailcall trait
virtual volatile
http://msdn.microsoft.com/ja-jp/library/dd233249.aspx
0777デフォルトの名無しさん
2011/05/08(日) 15:39:43.81> scalaの一部をjavaで書き直して高速化とか
javaとscalaだと、ほとんど速度は変わらない、という話。
どちらも、ソースコードを、コンパイルして生成されるclassファイルを実行するという点
は変わらないからね。
ただ、Scalaのライブラリを遅く使うような書き方すれば遅くなる。
> javaで書かれた数値計算用ライブラリが使えるとか、
ScalaはJavaのライブラリをシームレスに使える。
当然、Javaで書かれたライブラリ資産を呼び出そう。
たとえば、Scalaから、Processingを呼び出すのも可能だ。
> scalaにそういうのは無いの?
つ Scalalab http://code.google.com/p/scalalab/
これは、Matlab みたいな数値計算を Scalaの文法でやるもの。
数値演算、行列演算、データマイニング、ニューラルネット など。
現在、ものすごい勢いで開発されているので、頻繁にアップデートチェックしてね。
ただ、チュートリアルとかの情報は少ないので、とりあえず実行してみるべし。
0778デフォルトの名無しさん
2011/05/08(日) 15:57:19.77http://swik.net/scalalab
によると、
・Javaと同等
・ScalaLab(ScalaSci) は、 Matlab mスクリプトより 20〜40倍速い。
・C/C++に近い速度。もしくはC/C++以上の速度。
とか書かれている。
まあ、C/C++以上っていうのは、そういうライブラリもある、、って意味だろうけど。
0779デフォルトの名無しさん
2011/05/08(日) 21:47:14.19あんまり細かいと呼び出しコストの方がでかくなりがちなのが難点だな。
0780デフォルトの名無しさん
2011/05/08(日) 22:46:47.460781デフォルトの名無しさん
2011/05/08(日) 22:59:23.910782デフォルトの名無しさん
2011/05/08(日) 23:03:45.110783デフォルトの名無しさん
2011/05/10(火) 00:02:17.58大きなバグフィックスは無いし。
0784デフォルトの名無しさん
2011/05/10(火) 01:58:12.53去年は4/15-16、今年は6/2-3
0785デフォルトの名無しさん
2011/05/10(火) 18:16:55.700786デフォルトの名無しさん
2011/05/10(火) 18:23:58.170787デフォルトの名無しさん
2011/05/10(火) 18:26:37.31中途半端に関数型で JVM 上で動くからこそ注目されてる。
0788デフォルトの名無しさん
2011/05/10(火) 19:09:48.540789デフォルトの名無しさん
2011/05/10(火) 20:08:49.64残念ながら幾らでもはないです。
0790デフォルトの名無しさん
2011/05/10(火) 23:06:01.32ML派生・Lisp派生は10と言わずあるだろ
0791デフォルトの名無しさん
2011/05/10(火) 23:29:25.46ライブラリって知りませんか?
0792デフォルトの名無しさん
2011/05/11(水) 00:19:54.57思いっきり個人を特定し過ぎだろw
0793デフォルトの名無しさん
2011/05/11(水) 01:58:24.89何のことかさっぱりワカリマセン。
0794デフォルトの名無しさん
2011/05/11(水) 21:15:41.18どういう書き方が良いんだろう?
for(int i=0; i<args.length; i++){
if(args[i].equals("-f")){
filename = args[i+1];
i ++;
} else if ...
}
Java だといつもこんな具合に書いてるんだけど。
0795デフォルトの名無しさん
2011/05/12(木) 00:27:34.19パラメータの数ごとにループ走るけどまあ問題ないっしょ
本当はそれ用のライブラリ使うのがいいと思うが
val filename = args.dropWhile(_ != "-f").tail.headOption
val hoge = args.dropWhile(_ != "-h").tail.headOption
...
0796デフォルトの名無しさん
2011/05/12(木) 08:31:12.110797795
2011/05/12(木) 09:22:23.20val filename = args.dropWhile(_ != "-f").drop(1).headOption
0798デフォルトの名無しさん
2011/05/12(木) 20:12:36.560799デフォルトの名無しさん
2011/05/12(木) 22:06:04.07https://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_9_0_final
0800デフォルトの名無しさん
2011/05/12(木) 23:39:34.71http://code.google.com/p/simple-build-tool/wiki/Changes
> Workaround for Scala issue #4426
って何だろう。13日前に修正されてるみたいだが。
0801デフォルトの名無しさん
2011/05/13(金) 00:00:22.31ScalaとAkkaと各種開発ツールのを統合した「Typesafe Stack」を提供する。
Eclipseプラグインやsbtの新バージョン開発への貢献や、サポートサービスの提供にも関わる。
http://www.scala-lang.org/node/9484
0802デフォルトの名無しさん
2011/05/13(金) 09:01:48.25前はもっと野暮ったいデザインだったような。
0803デフォルトの名無しさん
2011/05/13(金) 09:03:43.880804デフォルトの名無しさん
2011/05/13(金) 18:20:23.86コンパイル時に自動でvalを付け加えるプラグインって簡単に作れますかね?
0805デフォルトの名無しさん
2011/05/13(金) 23:33:15.27http://www.infoq.com/news/2011/05/akka11
0806デフォルトの名無しさん
2011/05/16(月) 02:44:33.93headlessによる 2011年05月15日 14時00分の掲載
ttp://slashdot.jp/developers/11/05/14/1758207.shtml
スラドにしてはぜんぜんコメントがついてない。
ほんと人気ない言語だよね。
0807デフォルトの名無しさん
2011/05/16(月) 03:03:47.62Linuxや*BSDのリリースストーリーでも中の人が書きこまない限り
関連した回顧ネタや自分語りばっかりだったりする
0808デフォルトの名無しさん
2011/05/16(月) 04:27:57.840809デフォルトの名無しさん
2011/05/16(月) 05:45:27.940810デフォルトの名無しさん
2011/05/16(月) 07:30:48.99あそこは、単に誰でも参加できるような自転車置き場の議論があると盛り上がるところ
なので、新バージョンリリースとかだとさほど盛り上がらない事も多いです(実際に
そこそこ使われている言語であっても)
0811デフォルトの名無しさん
2011/05/16(月) 08:03:00.120812デフォルトの名無しさん
2011/05/16(月) 10:05:47.750813デフォルトの名無しさん
2011/05/16(月) 11:37:53.74呼んだ?
0814デフォルトの名無しさん
2011/05/16(月) 15:54:12.21主流になる世の中なんて絶対来ないよな(笑)
0815デフォルトの名無しさん
2011/05/16(月) 16:25:18.690816デフォルトの名無しさん
2011/05/16(月) 22:53:01.04この本の事か
ttp://www.amazon.co.jp/gp/product/4797359404/
「ボクらのScala ~ 次世代Java徹底入門」
浅海 智晴 (著)
0817デフォルトの名無しさん
2011/05/17(火) 00:05:57.82の-Zとか+Rってなんですか?
0818デフォルトの名無しさん
2011/05/17(火) 00:09:49.710819デフォルトの名無しさん
2011/05/17(火) 00:14:02.270820デフォルトの名無しさん
2011/05/17(火) 00:40:47.52記号を使いまくる言語はググり難くて困る
0821デフォルトの名無しさん
2011/05/17(火) 12:31:31.70> 記号を使いまくる言語はググり難くて困る
だけど、記号じゃなくて、長い単語だったりするのも困るし、、。
どこかに、
記号 → 意味
の一覧表はないのかなあ。
英語と日本語(正式名称, 通称 ) 付で。
たとえば
+ ; PlusOperator ; プラス演算子
+ ; ????? ; 共変を示すなんとか
+ ; ??? ; 正規表現のうんたらなんとか
みたいな感じで。
0822デフォルトの名無しさん
2011/05/17(火) 12:55:41.970823デフォルトの名無しさん
2011/05/17(火) 14:50:47.90リファレンスマニュアルで検索すればすぐ出てくるし。
まあ索引がないのはどうかと思うが。
0824デフォルトの名無しさん
2011/05/17(火) 20:33:55.170825デフォルトの名無しさん
2011/05/17(火) 21:17:52.32ScalaとAkkaの作者ら、マルチコアおよびクラウドアーキテクチャのための会社Typesafeを立ち上げ
http://www.infoq.com/jp/news/2011/05/typesafe
0826デフォルトの名無しさん
2011/05/17(火) 23:21:25.59conform to method ~'s type parameter bounds [AA >: Hoge,R]
ってどういう意味ですか?
0827デフォルトの名無しさん
2011/05/18(水) 00:59:34.01具体的にどんなコードを書いてそんなエラーが出たんだ?
0828デフォルトの名無しさん
2011/05/18(水) 21:44:52.00Could not connect to compilation daemon.
となるのは何故ですか?
scala2.8.0 windowsXPです
0829デフォルトの名無しさん
2011/05/18(水) 21:50:34.95まあ、起動が間に合うくらいのハイスペックマシンでないと
scalaを使うのはつらいね
0830デフォルトの名無しさん
2011/05/19(木) 19:56:20.33scala.io.Source.getLineとか。
0831デフォルトの名無しさん
2011/05/19(木) 20:06:29.30↓
http://www.scala-lang.org/api/current/index.html#scala.deprecated
0832デフォルトの名無しさん
2011/05/19(木) 20:07:13.660833デフォルトの名無しさん
2011/05/19(木) 21:41:50.85sbt使ってるけど、ビルドがタイムアウトしたことなんてないよ。
0834デフォルトの名無しさん
2011/05/19(木) 21:47:43.330835デフォルトの名無しさん
2011/05/21(土) 01:54:45.09後置クロージャーとか?
0836デフォルトの名無しさん
2011/05/21(土) 03:44:56.270837デフォルトの名無しさん
2011/05/22(日) 20:46:28.38動的型付け言語みたいのなんかよりはJavaの次世代候補としては可能性高いと思ってるけど
0838デフォルトの名無しさん
2011/05/22(日) 21:56:24.000839デフォルトの名無しさん
2011/05/22(日) 22:08:28.98http://uk-amazon.icims.com/jobs/128997/job
0840デフォルトの名無しさん
2011/05/22(日) 23:33:46.440841デフォルトの名無しさん
2011/05/22(日) 23:46:26.70大成功じゃん
そこまでは行かないかと。
0842デフォルトの名無しさん
2011/05/22(日) 23:57:35.22問題があるとすればなんでしょうか。
0843デフォルトの名無しさん
2011/05/22(日) 23:58:46.03ttp://www.indeed.jp/求人?q=scala
0844デフォルトの名無しさん
2011/05/23(月) 00:34:40.90可能だろうし特に問題はないんじゃない?
0845デフォルトの名無しさん
2011/05/23(月) 00:36:01.980846デフォルトの名無しさん
2011/05/23(月) 00:36:58.33> programming knowledge who are excited to work in a multi-language environment that
> includes Java, Scala, and C++. We are also looking for more experienced developers as follows:
まぁ、もっと専門的な経験(分散処理とか)を持っていることが大前提なわけだが。
業務での一番基本的な技能として位置づけられるところまで来た、と見ることはできるか。
0847デフォルトの名無しさん
2011/05/23(月) 00:40:20.26ああいう基礎的で要求が変化しにくいものを、わざわざJVM言語で書く意義は無いと思う。
0848デフォルトの名無しさん
2011/05/23(月) 00:41:25.420849デフォルトの名無しさん
2011/05/23(月) 00:53:16.98OSって、根本的なアーキテクチャに大きな変更が何度も起きるものじゃないわけで、
アセンブリとかCとかで書いた方がメリットがあるものだと思うよ。
# APIがクルクル変わるOSとか、悪夢以外の何物でもない。
んで、アプリとかサービスになるとまた話は変わってくるわけでさ。
Scalaの力が発揮できる領域はそこでしょ。
0850デフォルトの名無しさん
2011/05/23(月) 00:55:40.250851デフォルトの名無しさん
2011/05/23(月) 01:05:08.05そのうち誰かが試すかもね。
0852デフォルトの名無しさん
2011/05/23(月) 21:07:22.33ブートに使ってる若干のアセンブラ以外は全てJavaで書かれてた。
0853デフォルトの名無しさん
2011/05/23(月) 23:01:01.96電話面接で英語できねーっていったらそこで面接終了された。
0854デフォルトの名無しさん
2011/05/23(月) 23:10:51.120855デフォルトの名無しさん
2011/05/23(月) 23:42:43.000856デフォルトの名無しさん
2011/05/23(月) 23:50:07.250857デフォルトの名無しさん
2011/05/24(火) 00:48:42.47http://lambda-the-ultimate.org/node/499
JavaScriptでx86のエミュレーター実装してブラウザでLinuxというのもあるらしい
http://cpplover.blogspot.com/2011/05/javascriptpc.html
JVMのScala OSならこういうCPUがいいのかな
http://journal.mycom.co.jp/articles/2010/09/22/hot_chips22_greendroid/index.html
0858デフォルトの名無しさん
2011/05/24(火) 00:50:37.39だって再発明ってすごく楽しいじゃん。
関数型言語で作られた関数型OS。なんてクールなんだ。
プロセスを起動してもいつ実行されるか分からないぜ。
0859デフォルトの名無しさん
2011/05/24(火) 01:10:35.890860デフォルトの名無しさん
2011/05/24(火) 01:26:34.47Prologで書いたOS、荘園ってのもあったはず。ICOT!
0861デフォルトの名無しさん
2011/05/24(火) 01:33:10.340862デフォルトの名無しさん
2011/05/24(火) 01:43:58.940863デフォルトの名無しさん
2011/05/24(火) 02:56:16.46荘園はOSってよりその中の独立したプロセスみたいなもん
OSはPIMOS、言語はKL1
0864デフォルトの名無しさん
2011/05/24(火) 10:42:00.11http://ci.nii.ac.jp/naid/110002894960
0865デフォルトの名無しさん
2011/05/24(火) 23:57:26.21ダメな日本の代表みたいなコメントだな
0866デフォルトの名無しさん
2011/05/24(火) 23:59:16.68http://www.infoq.com/jp/news/2011/05/scala-29
0867デフォルトの名無しさん
2011/05/25(水) 00:00:58.32いきなりお祈りフェーズ突入。
0868デフォルトの名無しさん
2011/05/25(水) 00:54:54.79勝ち馬に乗ることしか考えてない冷笑主義よりは100倍マシな態度だと思うよ。
もちろん、実際に有用な結果が出るかはまた別だが。
0869デフォルトの名無しさん
2011/05/25(水) 01:02:39.19ただし再発明はただの世間知らずということだ!
0870デフォルトの名無しさん
2011/05/25(水) 01:26:46.090871デフォルトの名無しさん
2011/05/26(木) 00:53:50.410872デフォルトの名無しさん
2011/05/26(木) 01:05:36.670873デフォルトの名無しさん
2011/05/26(木) 01:25:23.030874デフォルトの名無しさん
2011/05/26(木) 01:33:52.440875デフォルトの名無しさん
2011/05/26(木) 01:53:19.37代数データ型あるし、ファーストクラスの関数あるし、パターンマッチあるし,imuutableあるし
だけど、オブジェクトあるし、破壊的代入あるし、継承あるし
で、こんだけあったうえで型推論がんばってるし。
0876デフォルトの名無しさん
2011/05/26(木) 02:02:56.68C++0xとかCommon Lispとか最強じゃないですか
0877デフォルトの名無しさん
2011/05/26(木) 02:04:29.410878デフォルトの名無しさん
2011/05/26(木) 03:49:09.77ただ、id:α→α くらいは推論してほしいな。
もう型推論にもレベルみたいなのいれて、選べるようにしてほしい。
このコードは型推論Lv2以下でコンパイル可能とかww
あと、もっと組み込みの代数データ型を増やしてほしい。色々なGraphとか、
0879デフォルトの名無しさん
2011/05/27(金) 13:19:22.52akka版のFutureがあるのか
機械翻訳直し忘れた文があるけど気にしない。
0880デフォルトの名無しさん
2011/05/27(金) 16:55:16.05なぜかとてもブックマークされている
0881デフォルトの名無しさん
2011/05/27(金) 17:12:20.710882デフォルトの名無しさん
2011/05/27(金) 20:40:04.98グーグルソースコード検索に、Scalaが登録されてないって、どういうことだよ。
http://www.google.co.jp/codesearch
だれか、googleに要望だしてくれ。
0883デフォルトの名無しさん
2011/05/27(金) 22:44:10.390884デフォルトの名無しさん
2011/05/27(金) 22:51:59.410885デフォルトの名無しさん
2011/05/27(金) 22:56:02.570886デフォルトの名無しさん
2011/05/27(金) 23:57:19.34オラクルの金権攻撃に負ける
0887デフォルトの名無しさん
2011/05/28(土) 00:13:54.410888デフォルトの名無しさん
2011/05/28(土) 00:51:31.370889デフォルトの名無しさん
2011/05/28(土) 01:16:40.400890デフォルトの名無しさん
2011/05/28(土) 01:28:57.74Scalaの日本のユーザーグループだからブックマークされてて当然だろ JK
0891デフォルトの名無しさん
2011/05/29(日) 11:05:16.980892デフォルトの名無しさん
2011/05/29(日) 16:43:59.87しかもJavaのだし。
0893デフォルトの名無しさん
2011/05/29(日) 18:36:05.49sbt0.9.xだと表示する行数指定できて便利よ
0894デフォルトの名無しさん
2011/05/29(日) 18:37:09.410895デフォルトの名無しさん
2011/05/29(日) 20:44:32.250896デフォルトの名無しさん
2011/05/29(日) 23:19:42.860897デフォルトの名無しさん
2011/05/29(日) 23:47:10.37のサイト立ち上げた張本人です。ちょっと誤解がありそうなので、サイトの立ち上げ経緯を説明しておこうかと思います。
とはいっても、本当にサイトの冒頭に書いてある通りなので、ほとんど重複した説明になってしまいますが。
0899その2 ◆CgacaMDhSQ
2011/05/30(月) 00:48:57.09Scalaを新しく始めるのは敷居が高いだろうと思います。その状況を草の根レベルでいいので、少しずつ改善していきたい、というのが一つ目の動機です。
0900その2 ◆CgacaMDhSQ
2011/05/30(月) 00:51:53.17という事に今更気づいたので、それならサイト作ってFAQやらまとめておいた方が、レスして回るよりは効率的だろうなあと。
0901その4 ◆CgacaMDhSQ
2011/05/30(月) 01:02:48.12少人数で、草の根的にScalaを普及させようという目的で(&趣味で)運営しているだけのサイトです。
0902デフォルトの名無しさん
2011/05/30(月) 02:07:16.440903デフォルトの名無しさん
2011/05/30(月) 02:09:04.98ごめんなさい。ドジりましたw
0905デフォルトの名無しさん
2011/05/30(月) 04:09:03.68(1,2,3)とかのタプルとかSet,Seq,Mapなど、でも自分で作るときはオブジェクト経由して定義しないとだめ。
ML風の代数データ型の定義を導入してほしい
0906デフォルトの名無しさん
2011/05/30(月) 06:41:22.51ビルド速くなってる、設定ファイル書くの簡単になった、など
詳しくはこちら
http://github.com/harrah/xsbt/wiki/Migrating-from-SBT-0.7.x-to-0.9.x
もうすぐstableな0.10.0が出るからもうちょい待ってもいいかも
0907デフォルトの名無しさん
2011/05/30(月) 08:08:45.31正直SBT設定ファイル書くだけならバージョンとか気にならんよな。
しかしsbtまじ便利。scalaの弱点だったコンパイル速度が気にならないくらい
一瞬で結果を返してくれる。ガチで開発効率が良くなった。
Web開発者もAndroiderも、Scala開発者は全員sbt使うべきだと思う。
0908デフォルトの名無しさん
2011/05/30(月) 08:51:06.76乙です。リンク集のライブラリへのリンクと解説がイイ!(・∀・)
Scalaでなんかやりたいときに逆引き的に使えるね!
0909デフォルトの名無しさん
2011/05/30(月) 12:43:24.300910デフォルトの名無しさん
2011/05/30(月) 12:45:28.04はい
0911Scala初心者
2011/05/30(月) 15:02:02.21新しいデータ構造を定義するときは、できればcase classで定義しておくと、
そのあと、パターンマッチしやすくて、そのデータ構造を探索するような処理のときに便利そうということはわかりました。
標準添付のライブラリのなかに、case classで定義したような
クラスってありますか?
まだ勉強中ですが、unapplyメソッドを自分で定義すれば、case をつけなくても良いような気がしますが、
標準添付のライブラリはそんな感じでしょうか?
理解が不十分で申し訳ありませんが、case classのよいサンプルを探しています。
0912デフォルトの名無しさん
2011/05/30(月) 15:15:25.420913Scala初心者
2011/05/30(月) 16:00:47.090914デフォルトの名無しさん
2011/05/30(月) 16:13:43.830915デフォルトの名無しさん
2011/05/30(月) 17:54:24.93知ってると思うけど、case classはapplyとunapplyが自動で定義されるだけだから
基本的に他の関数型言語の代数的データ型と同じような機能と考えられるから、
使い道もそんな感じになる
0917デフォルトの名無しさん
2011/05/30(月) 21:24:12.710918デフォルトの名無しさん
2011/05/30(月) 21:53:18.17unapplyのみの場合と対比して理解できない。
0919デフォルトの名無しさん
2011/05/30(月) 22:34:28.80誰かこれの行方を知ってる人いないかな。ただ更新止まっただけなのかな。
0920デフォルトの名無しさん
2011/05/30(月) 22:38:27.650921デフォルトの名無しさん
2011/05/30(月) 22:49:55.12コップ本P416によると、組み込みじゃないらしいぜ。
0922デフォルトの名無しさん
2011/05/30(月) 22:55:37.22F#に比べてクソって書いてありますが・・・
0923デフォルトの名無しさん
2011/05/30(月) 22:57:22.820924デフォルトの名無しさん
2011/05/30(月) 23:11:03.07Scalaはなんちゃって関数型言語ってことであってる?
0925デフォルトの名無しさん
2011/05/30(月) 23:28:32.800926デフォルトの名無しさん
2011/05/30(月) 23:44:44.59高速だし
0927デフォルトの名無しさん
2011/05/31(火) 00:26:41.80Scalaがなんちゃってなのはモナドまわりに関してですか?
0928デフォルトの名無しさん
2011/05/31(火) 00:32:46.91他の人も言っているけれど Option型はちゃんと使い方を知っとく多くの関数型言語で役に立つよ。
代数的データをうまく生かした好例だと思う。定義はこんな感じでとってもシンプル。でもベリー役に立つ。
sealed abstract class Option[A]
case class Some[A](x: A) extends Option[A]
case object None[A] extends Option[A]
0929デフォルトの名無しさん
2011/05/31(火) 01:06:04.020930デフォルトの名無しさん
2011/05/31(火) 02:58:17.90いや、きっと究極なんだろうけど。
0931デフォルトの名無しさん
2011/05/31(火) 07:32:58.190932デフォルトの名無しさん
2011/05/31(火) 17:28:30.13ScalaのモナドはHaskellそのまんまだぞ
F#のモナドは・・・非常にMS的というか
あのでかい表をみてHaskellerがどう思うか聞いてみたい
0933デフォルトの名無しさん
2011/05/31(火) 20:28:36.58それとMSとMSRって別もんじゃね?
0934デフォルトの名無しさん
2011/05/31(火) 21:41:54.71> [error] {file:/C:/.../hoge/}default/test:run: java.lang.RuntimeException: No main class detected.
0.9では run = test:run ということなの?
run したときは mainClass in (Compile, run)
test:run したときは mainClass in (Test, run)
で指定したクラスが実行されるもんだと思ってたけど…。
というかそのようにしたいんだけど、どう設定したらいいんだろう。
コンパイルは早いし設定も楽になったから是非0.9を使いたい。
しかし実行に関する部分がイマイチわからない…。
0935デフォルトの名無しさん
2011/05/31(火) 22:57:39.42至高の言語だよねぇ
0936デフォルトの名無しさん
2011/06/01(水) 01:17:30.02たぶん相手にされないと思う
0937デフォルトの名無しさん
2011/06/01(水) 01:36:45.92開発環境よく知らんからなあ
Scalaはsbtがあるし、OCamlはOMakeがあるんだけど
monoと一緒に使える、似たようなのがあれば、使うかもしれん
0938デフォルトの名無しさん
2011/06/01(水) 01:38:54.820939デフォルトの名無しさん
2011/06/01(水) 01:42:51.43え?何?聞こえない
0940デフォルトの名無しさん
2011/06/01(水) 01:54:37.990941デフォルトの名無しさん
2011/06/01(水) 02:00:02.36Simon Peyton-JonesとDon Syme、
開発者同士は、同じケンブリッジのMSRだから結構相談しあってるようだね。
0942デフォルトの名無しさん
2011/06/01(水) 02:10:22.70今でもいるのかは知らんけど
0943デフォルトの名無しさん
2011/06/01(水) 02:26:07.23http://research.microsoft.com/en-us/people/simonpj/
0944デフォルトの名無しさん
2011/06/01(水) 02:37:32.02sbt 0.9は、まだちゃんと実装されてない部分があるので何とも。
何ヶ月か前に試した時は、consoleが実装されてなかったりとかした。
0945デフォルトの名無しさん
2011/06/01(水) 09:09:11.370946デフォルトの名無しさん
2011/06/01(水) 09:15:24.91今はたまにLINQに言及することがあるくらいで、
MSの製品とは直接関係ない昔と変わらない研究してる。
今は無きHaskell.NETにも関係していたはず。
0947デフォルトの名無しさん
2011/06/01(水) 11:12:20.55http://groups.google.com/group/simple-build-tool/browse_thread/thread/204221b7e0737393
俺もそれなったから解決策探してたらMLに同じ症状の人がいた
> compile:run
でいけるみたい
0948デフォルトの名無しさん
2011/06/01(水) 11:17:32.760949デフォルトの名無しさん
2011/06/01(水) 16:12:31.25ありがとう。
バグなのね。
直るの待つしかないかな。
0950デフォルトの名無しさん
2011/06/02(木) 01:23:09.15http://d.hatena.ne.jp/sy-2010/20110530/1306770086
0951デフォルトの名無しさん
2011/06/03(金) 09:25:30.74PlayってJava前提だからScalaで使いにくいんじゃない?
nullが平気で出てくるから関数型言語なのに実行時エラーがでまくりって聞いたけど。
0952デフォルトの名無しさん
2011/06/03(金) 09:41:05.32一度でもエラー発生すると、nullばかりでどうにもならないし
関数型言語っていうよりRoRパクッた駄作だと思う
0953デフォルトの名無しさん
2011/06/03(金) 11:46:12.23それとも他に選択肢あんの?
0954デフォルトの名無しさん
2011/06/03(金) 12:58:26.590955デフォルトの名無しさん
2011/06/03(金) 20:35:57.56ありがたやありがたや
0956初心者
2011/06/04(土) 02:35:42.66ListとArrayを見てるんですが、それぞれ、Immutable, mutableの違いがあるようです。
また実装の仕方も違うので、同じことをするのでも速度が違うということがわかりました。
それで、どういうメソッドがそれぞれ使えるかを調べていて、継承関係など見ていますが
コップ本やネットの記事をみてると、
ArrayもListもSeqを継承しているように書いています。
ちなみにネットの記事は
http://goo.gl/NXgoR を参照しました。
しかし、APIをみてみると、Arrayは、Seqを継承していないようです。
http://www.scala-lang.org/api/current/index.html
これは、2.9 で仕様変更があったのでしょうか?
(ちなみに、コップ本(日本語)は、Scalaのバージョンいくつですか?いろんなページみたけど書いてません)
ご存じの方、情報ください。
よろしくお願いします。
ArrayとListのメソッドの違いを理解するのに苦慮しています。
0957デフォルトの名無しさん
2011/06/04(土) 02:54:56.88http://eed3si9n.github.com/scala-collections-impl-doc-ja/
これを読んでから出直して来てください
0958デフォルトの名無しさん
2011/06/04(土) 03:12:18.180959デフォルトの名無しさん
2011/06/04(土) 03:17:10.46ArrayとListの区別もつかないやつはもっと基礎から勉強したほうがいいよ
0960デフォルトの名無しさん
2011/06/04(土) 05:15:25.360961デフォルトの名無しさん
2011/06/04(土) 06:18:50.040962デフォルトの名無しさん
2011/06/04(土) 09:18:06.74フヒヒ、すんません
0963デフォルトの名無しさん
2011/06/04(土) 09:35:48.81折衷言語って結局失敗するよね。JavaとかC#みたいなのが出てくる。
Javaに関数型言語風味を、なんて失敗するのがオチ。
0964デフォルトの名無しさん
2011/06/04(土) 09:49:37.220965デフォルトの名無しさん
2011/06/04(土) 10:10:06.150966デフォルトの名無しさん
2011/06/04(土) 10:10:48.68コップ本は2.7.7対象。2.8.0以上対象の第2版が英語だけど出てる。日本語版はまだ。
配列に関しては>>957を配列の項を読めばおk
ArrayOpsとListで使えるメソッドの違いって::系ぐらいだと思うんだけど……
0967デフォルトの名無しさん
2011/06/04(土) 13:35:48.03http://scala-tools.org/repo-releases/net/stbbs/yasushi/sbt-appengine-plugin/2.2/sbt-appengine-plugin-2.2.jar
[error] sbt.ResolveException: unresolved dependency: net.stbbs.yasushi#sbt-appengine-plugin;2.2: not found
0968デフォルトの名無しさん
2011/06/04(土) 14:22:46.91だってsbtは設定を書くだけで必要なパッケージを自動で取ってくる優れたツールって聞いてたし、
このpluginの本家READMEを読んでもインストールが必要なんてこれっぽっちも書いてないんだもん。
0969デフォルトの名無しさん
2011/06/04(土) 22:33:26.12Grails/GRuby on Rails のJavaで作ってた部分をScalaで置き換え。
0970デフォルトの名無しさん
2011/06/05(日) 17:06:16.70scalaを流行らせてくれ
0971デフォルトの名無しさん
2011/06/05(日) 17:35:46.27http://www.theregister.co.uk/2011/06/03/google_paper_on_cplusplus_java_scala_go/
Odersky先生のコメントもあり
0972デフォルトの名無しさん
2011/06/05(日) 19:02:41.95なるほど。Goが最も優れてるけど今更引くことは出来ないと
0973デフォルトの名無しさん
2011/06/05(日) 19:55:48.48どこにそんなことが書いてあるんだよw
0974デフォルトの名無しさん
2011/06/06(月) 15:47:57.02List((1,2),(3,4)).map((a,b)=>a+b)
的なことはできないんですか?
ちなみに正解は
List((1,2),(3,4)).map({case (a,b)=>a+b})
0975デフォルトの名無しさん
2011/06/06(月) 16:48:53.24下の書き方で何も問題ないと思うが。もしかして数バイトが惜しいとか。
0976デフォルトの名無しさん
2011/06/06(月) 16:52:28.15しばらく使ってないと、必ず上のように書いてしまう。
caseがウザイと思いませんか?これなら許せる。
List((1,2),(3,4)) map {(a,b)=>a+b}
0977デフォルトの名無しさん
2011/06/06(月) 17:08:04.56いまさらそんなこと言ったってしょうがない。
確かにそのように書けたら、ちょっと短く書けて便利かもしれないが、
そんな数文字省略できるくらいで、それほどすごい利点があるわけではない部分が、
この先変更になる可能性はかなり低いと思う。
どうしてもそうしたいなら、自分でコンパイラのソースでもいじって、省略できるようにするればいいのでは?
0978デフォルトの名無しさん
2011/06/06(月) 17:13:58.430979デフォルトの名無しさん
2011/06/06(月) 17:32:14.73うむ・・、残念。
>>978
ちなみにセンスいい言語って何ですか?
Haskellはウネウネするしなぁ。
0980デフォルトの名無しさん
2011/06/06(月) 17:49:25.760981デフォルトの名無しさん
2011/06/06(月) 17:53:36.410982デフォルトの名無しさん
2011/06/06(月) 18:38:03.380983デフォルトの名無しさん
2011/06/06(月) 21:30:37.43になっちゃったのですが、何を渡せばいいんですか?
具体的にはjava.awt.Graphics2Dのclip(null)ですが。
0984デフォルトの名無しさん
2011/06/06(月) 21:42:51.740985デフォルトの名無しさん
2011/06/06(月) 22:14:30.59タプルと引数リストが互換になると見通しはよくなると思うが、何か技術的困難があるのかしら。
0986デフォルトの名無しさん
2011/06/06(月) 23:03:51.440987デフォルトの名無しさん
2011/06/06(月) 23:12:18.10タプルと引数リストの変換は3.0かどっかで入るんじゃなかったか
0988デフォルトの名無しさん
2011/06/06(月) 23:15:38.35昨日のおだちゃんdayでもそんなこと言ってなかったけど?
0989デフォルトの名無しさん
2011/06/07(火) 01:06:09.75ごめ、違ったっぽい。スルーしてください
0990デフォルトの名無しさん
2011/06/07(火) 01:17:43.720991デフォルトの名無しさん
2011/06/07(火) 12:23:17.80http://hibari.2ch.net/test/read.cgi/tech/1307416864/
0992デフォルトの名無しさん
2011/06/07(火) 14:26:36.180993デフォルトの名無しさん
2011/06/07(火) 14:30:07.700994デフォルトの名無しさん
2011/06/07(火) 18:51:41.130995デフォルトの名無しさん
2011/06/07(火) 19:03:47.600996デフォルトの名無しさん
2011/06/07(火) 21:09:50.630997デフォルトの名無しさん
2011/06/07(火) 21:50:50.18って意味では合ってるんじゃないの?
0998デフォルトの名無しさん
2011/06/07(火) 22:02:32.88誰も誉め言葉として受け取らないw
0999デフォルトの名無しさん
2011/06/08(水) 00:42:37.86それはC++のC互換性維持の努力を侮りすぎじゃ
1000デフォルトの名無しさん
2011/06/08(水) 00:49:20.35つ https://days2011.scala-lang.org/sites/days2011/files/ws3-2-scalallvm.pdf
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。