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

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

プログラミング言語 Scala 10冊目

1 :デフォルトの名無しさん:2014/01/25(土) 14:54:02.07 .net
The Scala Programming Language
ttp://www.scala-lang.org/

日本Scalaユーザーズグループ
ttp://jp.scala-users.org/

■前スレ
プログラミング言語 Scala 9杯目
http://toro.2ch.net/test/read.cgi/tech/1364619119/

■Scalaの紹介文(さわり)
Scalaは簡潔かつ優雅で型安全な方法でよくあるプログラミングパターンを表現できるように
設計された汎用プログラミング言語です。
Scalaはオブジェクト指向と関数型言語の特徴をスムーズに統合しておりJavaやその他の言語を扱う
プログラマをより生産的にすることができます。(以下略)
ttp://www.scala-lang.org/node/25

■Scalaに関する書籍(英語)
ttp://www.scala-lang.org/node/959
リファレンスマニュアルや草稿のPDFなども充実しているのでそちらも参照してください。
日本語の資料には、チュートリアルの訳やIBM dW、IT Pro, @ITの連載記事、各々で開かれた勉強会の資料などがあります。

934 :デフォルトの名無しさん:2015/05/12(火) 19:49:39.59 ID:ZHOslJuR.net
3.0は知らんけど、Slickは筋が悪い気がするので使いたくない。

935 :デフォルトの名無しさん:2015/05/13(水) 21:19:44.51 ID:Gq38kIX8.net
>>932
ScalikeJDBCじゃダメなの?

936 :デフォルトの名無しさん:2015/05/17(日) 10:15:54.13 ID:MUnfOjBK.net
Scalaって型安全が目的化しておかしくなってる部分が多いよね
静的型でメタプログラミングは諦めてC#みたいにメタな操作は全部実行時と割り切るのが現実的

937 :デフォルトの名無しさん:2015/05/17(日) 18:30:38.56 ID:IG3z4SBY.net
型安全が完璧だと自動化が楽になる
それだけでも有用性が大きい

938 :デフォルトの名無しさん:2015/05/18(月) 21:43:41.28 ID:Za9DOvVn.net
>>932
sql直接投げられなかったっけ?

939 :デフォルトの名無しさん:2015/05/23(土) 07:50:17.02 ID:SgbjeX2J.net
DBの1行に対応する型としてcase classを使ってるんだけど、
・DBに保存されていない(IDとタイムスタンプが付与されていない)
・DBに保存されている(IDとタイムスタンプが付与されている)
の区別を型で表現するにはどうするのがスマート?

940 :デフォルトの名無しさん:2015/05/23(土) 14:51:25.75 ID:wCdzmxCi.net
IDとタイムスタンプを持つtraitを使うとか

941 :デフォルトの名無しさん:2015/05/24(日) 09:39:32.27 ID:zPEDRqiY.net
>>939
直和型?
trait Saved {idとか}
sealed trait ModelA
case class SavedModelA() extendds ModelA with Saved
case class UnsavedModelA() extends ModelA

942 :940:2015/05/24(日) 09:58:14.00 ID:uVZ1+wHE.net
>>940-941
確かにtraitを使うのが自然だとは思うんだけど、
それだとcase classのフィールドの宣言が重複するし、
UnsavedModelからSavedModelを作るとき手で全部移さないといけないのが嫌じゃない?
ModelADataみたいな case class でまとめてもいいけど、一つの型にまとめられないなら単に
case class Saved[T](id: Int, data: T)
でいい気がする

943 :940:2015/05/24(日) 10:03:02.43 ID:uVZ1+wHE.net
補足
>>942の”一つの型にまとめられないなら”というのは
各フィールドの宣言が複数の型に分散してもいいなら、という意味です

944 :デフォルトの名無しさん:2015/05/25(月) 13:59:19.70 ID:lm90egiZ.net
>>939
anorm.Pk は?

945 :デフォルトの名無しさん:2015/05/25(月) 16:23:13.15 ID:zn2Fs3VY.net
anorm.Pk使うくらいならOptionでいいでしょ
わざわざ変な依存性を持ち込む必要はないよ
実際そういう理由でdeprecatedになってるし

946 :デフォルトの名無しさん:2015/06/08(月) 18:29:37.98 ID:fPO/HoGA.net
>>914
お前IQ145もあるの?

947 :デフォルトの名無しさん:2015/06/08(月) 21:32:12.46 ID:FQv4Gom7.net
IQ180以下は書き込み禁止の方向で

948 :デフォルトの名無しさん:2015/06/08(月) 21:33:49.99 ID:Wd1nyyc/.net
ScalaはJavaより速い?

949 :デフォルトの名無しさん:2015/06/08(月) 21:42:48.43 ID:FQv4Gom7.net
プログラマの教育期間まで含めれば、まだJavaの方が速いでしょうね
Scalaは仕様を減らすべきだった

950 :デフォルトの名無しさん:2015/06/09(火) 00:40:40.49 ID:gOy2U9+2.net
別にscalazとか使わなくてもいいんやで

951 :デフォルトの名無しさん:2015/07/10(金) 22:43:51.11 ID:coMDr/sM.net
環境はwindowsです
パイプ処理を自動化して行いたいので
scalaのコンパイルと実行をコマンドプロンプト経由でやろうとしてるんですが
やり方がよく分かりません。↓のようなことをsaclaでやるには
どうしたらいいでしょうか?

C# で gcc のようにファイルを指定してビルドする方法
http://yohshiy.blog.fc2.com/blog-entry-208.html

952 :952:2015/07/10(金) 22:45:31.09 ID:coMDr/sM.net
開発自体はeclipseでやってます

953 :デフォルトの名無しさん:2015/07/10(金) 22:54:11.94 ID:mg6PwCme.net
今すぐScalaアンインストールしてTypesafe Activatorで出直せ

954 :デフォルトの名無しさん:2015/07/10(金) 22:54:36.70 ID:coMDr/sM.net
>>951-952
ググりしなおしたらscalacの存在を知りました
これでやってみます

955 :デフォルトの名無しさん:2015/07/10(金) 23:14:28.90 ID:cV8tXdlJ.net
つまりどういうこと?

956 :デフォルトの名無しさん:2015/07/18(土) 19:41:20.14 ID:A+X8599K.net
コンパイラーの使い方学ぶより先にIDE使い始めるのって本当に弊害しかないんだな。。。

957 :デフォルトの名無しさん:2015/07/20(月) 13:49:43.03 ID:6wDw3Bgn.net
今から静的型付な関数型言語勉強するなら
scalaとf#とhaskellならどれおすすめ?

学べる事、出来る事ははほとんど同じなんだろうけど、
それぞれデメリットが気になって選べないんだよなあ。
scala(コンパイル遅すぎ、javaに密着らしい?)
f#(vs覚えなきゃ、この中では情報少なめ)
haskell(io周りに縛り?が多すぎてやりたい事やるまでが大変だった)

ruby使いの趣味グラマーだからいろいろこだわらないで、
手続き型でも書けるscalaでいい…よね?

958 :デフォルトの名無しさん:2015/07/20(月) 16:34:55.26 ID:WnNA5LDR.net
勉強目的ならHaskell

959 :デフォルトの名無しさん:2015/07/20(月) 17:59:30.85 ID:jyLRfwQm.net
scalaもf#もhaskellも3つともインストールして使ってみればいい

960 :デフォルトの名無しさん:2015/07/20(月) 18:12:35.20 ID:o7i58OTB.net
Javaエコシステム知ってるならScala、.netエコシステム知ってるならF#、Unixエコシステム知ってるならHaskell、どれも馴染みないなら好きに

961 :デフォルトの名無しさん:2015/07/20(月) 18:19:04.57 ID:6pYE0LpF.net
scalaのコンパイルが遅い事に関しては、
GroovyServを使ったscalacで劇的に早くなるって事を
どこかで見たよ

962 :デフォルトの名無しさん:2015/07/20(月) 18:22:08.31 ID:klm+d0ji.net
言語として一番実用性と関数型らしさのバランスがいいのはF#だね
Haskellは競技プログラミングなど極めて小さい問題領域の問題を最短で解くのには向いてる
ScalaはJava前提で、言語そのものには特に見るべきところはない

963 :デフォルトの名無しさん:2015/07/20(月) 18:27:12.45 ID:8QocQRHr.net
androidアプリ作りたいからJavaを覚えようかと思ってるけど迷ってる
でもGoogleがOracleとの件でJavaを切るんだったらJavaを覚える必要がなくなっちゃう
そうするとどこでJavaを使えばいいのかわからなくなる
WEBサイトとかはPHPとGoがあれば間に合うしJavaが使えるクラウドってあんまりないし
haskellは関数型言語を1つは覚えたいと思ってるので競プロ用で使いたいから覚えてる

964 :デフォルトの名無しさん:2015/07/20(月) 19:37:19.02 ID:CQ27gtAR.net
競プロ用ならc++が一番じゃね?
プロコンにhaskell向いてるかな プロコンって手続き型の言語が向いている気がする(メモリ使用量と計算量が予想しやすい)
俺が無知なだけか知らないけど

言語としてのjavaはどうでもいいが ともかくjvm言語を一つ以上知っておいたほうがいいと思う

965 :デフォルトの名無しさん:2015/07/20(月) 20:06:14.59 ID:0TG+/+/W.net
どうせ趣味でやるなら普段使ってるのと違うのを使えばいいかと
それを考えるとC系の残る Scala よりはML系のF#かHaskellでいいのでは

966 :デフォルトの名無しさん:2015/07/20(月) 20:32:59.78 ID:n95qMHkT.net
>>965
趣味だから実用性皆無で良いというのは違うと思うなあ。

967 :デフォルトの名無しさん:2015/07/20(月) 21:08:06.11 ID:AKjrtHkO.net
ScalaのメリットはJavaライブラリがそのまま使えることだね
これは何気にデカい

968 :デフォルトの名無しさん:2015/07/20(月) 22:00:16.45 ID:R5wOe01Z.net
もっとメインストリームに躍り出ないのかな。自由度が高すぎるか

969 :デフォルトの名無しさん:2015/07/20(月) 22:04:54.55 ID:SaCGDbjT.net
データ解析など特定分野でなら可能性はあるが、
Sparkはすごく微妙だった
やっぱりJava系言語はスクリプティングに向いてないわ

970 :デフォルトの名無しさん:2015/07/20(月) 22:23:07.99 ID:h53zSEfc.net
趣味ならRustやってみればいいじゃん
ライブラリがほとんどない&エクスペリメンタルな機能が多いのが致命的だけど速いし良い言語だから将来性がある。
あとScalaがJavaベッタリなんてことはない。Scalaが出てきてから随分経ってるからスタンドアロンなライブラリも結構ある。

971 :デフォルトの名無しさん:2015/07/22(水) 07:36:36.59 ID:pzWUtjfr.net
RustはGoに似た雰囲気で、どちらかというとシステム寄りな言語だから
そういう目的がないのであればちょっと低レベルに感じるかもしれないね

972 :デフォルトの名無しさん:2015/07/22(水) 17:47:21.78 ID:U3gJc9Cs.net
>>971
最近リリースされたscalaのラムダが、Java8のラムダと同じバイトコードになるようになったらしいんだけど、高速化される?

973 :デフォルトの名無しさん:2015/07/22(水) 17:47:49.61 ID:U3gJc9Cs.net
ごめんアンカーミス

974 :デフォルトの名無しさん:2015/07/23(木) 14:37:06.19 ID:5z9kTQIC.net
rustはどちらかというとというより
明らかにシステムよりの言語
goと違ってGCないし(参照カウント方式のポインタはまぁあるけど)
メモリ安全なML風C言語みたいな?

975 :デフォルトの名無しさん:2015/07/23(木) 19:18:52.79 ID:2Zk51aV8.net
>>974
RustにGCがないのは特別な理由があるかららしいよ。
GC自体はgolangにもあるし、システム言語かどうかはGCの有無に関係ない気がする。

976 :デフォルトの名無しさん:2015/07/24(金) 08:39:35.16 ID:sUR4TL+C.net
>>975
GCがないのはrustがc/c++後継狙ってて
osやら組み込みやらも書ける事を狙ってるからじゃないの(ブラウザを書き直してるらしい)
メモリは直接触れるけど安全ですよ(unsafeとか除けば)みたいな

977 :デフォルトの名無しさん:2015/07/24(金) 12:49:27.36 ID:hDTLirAT.net
>>976
いやRustはブラウザを書くためにFirefoxの中の人が作り始めた言語で、GCがないのはブラウザがカクつかないようにするためらしい。
てか現実的に考えて関数型な時点でcやc++みたいなデファクトなシステム言語にはなれないと思うな。
まぁscalaスレだからこれくらいにしとく

978 :デフォルトの名無しさん:2015/07/24(金) 16:32:42.17 ID:sUR4TL+C.net
そうかブラウザが主目的か(´・ω・`)

979 :デフォルトの名無しさん:2015/08/01(土) 03:06:18.49 ID:aSYHV23c.net
=>

↑ってなんて読むの?

980 :デフォルトの名無しさん:2015/08/01(土) 16:32:07.75 ID:DY0kRX1l.net
arrow…かな

981 :デフォルトの名無しさん:2015/08/01(土) 16:36:58.19 ID:c0YSrVc+.net
then

982 :デフォルトの名無しさん:2015/08/01(土) 16:38:48.01 ID:RZc3oG0T.net


983 :デフォルトの名無しさん:2015/08/02(日) 01:34:56.57 ID:pPqLz3oQ.net
double arrow

総レス数 983
226 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★