SlideShare a Scribd company logo
Scalaやろうぜ!
                  by Abe Asami




12年12月27日木曜日
自己紹介

               Abe Asami きの子 (フリーエンジニア)
               http://nocono.net/
               Twitter: @aa7th
               使用言語:Java、C#など




12年12月27日木曜日
先日こんな発表をしてきました




12年12月27日木曜日
2012/11/24(土)
               第2回 関数型言語勉強会 大阪にて




                http://nocono.net/12

12年12月27日木曜日
その後




12年12月27日木曜日
あんまりはかどっていません




12年12月27日木曜日
また2日前から焦ってちょっと
                   頑張りました




12年12月27日木曜日
というわけで・・・
      初心者による初心者のためのScala講座
           はじまりはじまり




12年12月27日木曜日
Scalaって何?
               JVM言語

               オブジェクト指向であり関数型

               ポストJavaとして注目されている



12年12月27日木曜日
メリット
               Javaと比較して簡潔に記述できる
               (コード量が1/2∼1/3は減る)
               静的型付け、事前コンパイル
               Javaライブラリ利用可能
               並行処理に強い


12年12月27日木曜日
メリット
               Javaと比較して簡潔に記述できる
               (コード量が1/2∼1/3は減る)
               静的型付け、事前コンパイル
               Javaライブラリ利用可能
               並行処理に強い

                スケーラビリティが高い
12年12月27日木曜日
デメリット
               コンパイルが遅い
               エンジニアが少ない
               関数型についての学習コスト
               が高い



12年12月27日木曜日
関数型って?
        関数を値(リテラル)として扱う言語
               数学的な関数のこと


     「副作用」を極力避ける
               コンピュータの論理的な状態を変化させない!
               変数への代入を避けて定数を使用する

                        イミュータブル

12年12月27日木曜日
副作用がないと...

               変数に想定外の値がはいっていた!
               というような事態がない
               並行処理がこわくなくなる




12年12月27日木曜日
副作用がないと...

               変数に想定外の値がはいっていた!
               というような事態がない
               並行処理がこわくなくなる

                 バグが減少する

12年12月27日木曜日
とりあえずはじめてみましょう




12年12月27日木曜日
インストール
           http://www.scala-lang.org/downloads



         もしくはHomebrewで
               brew install scala




12年12月27日木曜日
REPLで実行

                $scala




12年12月27日木曜日
REPLで実行

               scala> val num = 5
               num: Int = 5




12年12月27日木曜日
変数と定数
               scala> val num = 5
               num: Int = 5


                val = 定数
                var = 変数




12年12月27日木曜日
型推論
               scala> val num = 5
               num: Int = 5



               型宣言しなくていい!




12年12月27日木曜日
基本型
                 scala> val num = 5
                 num: Int = 5


               Intクラス型
               コンパイル時にintに変換される




12年12月27日木曜日
セミコロン推論
               scala> val num = 5
               num: Int = 5



               セミコロンを省略できる




12年12月27日木曜日
次のJavaプログラムを
       初心者なりにScalaで書き換えてみました




12年12月27日木曜日
Java
        public class Sum {
            public static void main(String[] args) {
                int start = Integer.parseInt(args[0]);
                int end = Integer.parseInt(args[1]);

                   int sum = 0;
                   for (int num = start; num <= end; num++)
                       sum += num;

                   System.out.println(sum);
               }
        }




12年12月27日木曜日
Scala
               object Sum {
                 def main(args: Array[String]) {
                   val start = args(0).toInt
                   val end = args(1).toInt

                       var sum = 0
                       for (num <- start to end)
                         sum += num

                       println(sum)
                   }
               }




12年12月27日木曜日
Scala
                                      シングルトンクラス
               object Sum {
                 def main(args: Array[String]) {
                   val start = args(0).toInt
                   val end = args(1).toInt

                       var sum = 0
                       for (num <- start to end)
                         sum += num
                                             コレクション(Range)
                       println(sum)
                   }
               }




12年12月27日木曜日
まだ短くなる筈だ!




12年12月27日木曜日
var sum = 0
                   for (num <- start to end)
                     sum += num




               val sum = (0 /: (start to end)) (_+_)




12年12月27日木曜日
順を追って説明します




12年12月27日木曜日
var sum = 0
                        for (num <- start to end)
                          sum += num




               def add(x:Int, y:Int) : Int = {x + y}
               val sum = (start to end).foldLeft(0)(add)
                                      初期値


                                        リストの各要素に対して
                            ※引数が分割されている    行う処理




12年12月27日木曜日
def add(x:Int, y:Int) : Int = {x + y}
               val sum = (start to end).foldLeft(0)(add)




                                       戻り値の型省略      1行なので
                                                    中括弧省略
               def add(x:Int, y:Int) = x + y
               val sum = (start to end).foldLeft(0)(add)


         ・等号を省略すると戻り値無しとみなされる
         ・戻り値型の省略はほどほどに (分かりにくくなるかも)


12年12月27日木曜日
def add(x:Int, y:Int) = x + y
               val sum = (start to end).foldLeft(0)(add)



                                                 無名関数



    val sum = (start to end).foldLeft(0)((x, y) => x + y)




12年12月27日木曜日
val sum = (start to end).foldLeft(0)((x, y) => x + y)




                                            プレースホルダー


           val sum = (start to end).foldLeft(0)(_+_)


                    ※引数が1回しか使われない場合のみ




12年12月27日木曜日
val sum = (start to end).foldLeft(0)(_+_)




                                           foldLeftの別名


                 val sum = (start to end)./:(0)(_+_)




12年12月27日木曜日
val sum = (start to end)./:(0)(_+_)




               val sum = (0 /: (start to end)) (_+_)


                             演算子記法




12年12月27日木曜日
最終的にこうなりました




12年12月27日木曜日
Scala(最終版)

        object Sum {
          def main(args: Array[String]) {
            println((0 /: (args(0).toInt to args(1).toInt)) (_+_))
          }
        }

               追記:ここまでやると可読性が下がるので、
                  程々のところで止めておくのがよいとのことです。
                  というか、リストの合計を出すsum関数があるので、実際は
                  (args(0).toInt to args(1).toInt).sum
                  でOK!




12年12月27日木曜日
Before                                             After
  public class Sum {                                 object Sum {
      public static void main(String[] args) {         def main(args: Array[String]) {
          int start = Integer.parseInt(args[0]);         println((0 /: (args(0).toInt to args(1).toInt)) (_+_))
          int end = Integer.parseInt(args[1]);         }
                                                     }
          int sum = 0;
          for (int num = start; num <= end; num++)
              sum += num;

          System.out.println(sum);
      }
  }




12年12月27日木曜日
Before                                             After
  public class Sum {                                 object Sum {
      public static void main(String[] args) {         def main(args: Array[String]) {
          int start = Integer.parseInt(args[0]);         println((0 /: (args(0).toInt to args(1).toInt)) (_+_))
          int end = Integer.parseInt(args[1]);         }
                                                     }
          int sum = 0;
          for (int num = start; num <= end; num++)
              sum += num;

          System.out.println(sum);
      }
  }




                                 / ドヤァ...\




12年12月27日木曜日
どうやらリスト操作を覚えると
           割と簡単に関数型ちっくな書き方が
                できるようです




12年12月27日木曜日
リスト操作については
       この後@mumoshuさんのセッションにて!




12年12月27日木曜日
慣れないうちはこの書き方でも
                   良いと思います
                object Sum {
                  def main(args: Array[String]) {
                    val start = args(0).toInt
                    val end = args(1).toInt

                        var sum = 0
                        for (num <- start to end)
                          sum += num

                        println(sum)
                    }
                }



12年12月27日木曜日
無理せず楽しく慣れていきましょ!




12年12月27日木曜日
おすすめ書籍




                通称:コップ本

12年12月27日木曜日
お役立ちサイト
  「Coursera」(英語)
       https://www.coursera.org/



 「Hishidama s Scala Memo」
       http://www.ne.jp/asahi/hishidama/home/tech/scala/index.html


  「Scala Cookbook」
       http://www.ne.jp/asahi/hishidama/home/tech/scala/index.html




12年12月27日木曜日
お役立ちサイト
     「刺激を求める技術者に捧げるScala講座(ITPro)」
          http://itpro.nikkeibp.co.jp/article/COLUMN/20080613/308019/




      「Scala入門(@IT)」
          http://www.atmarkit.co.jp/fjava/index/index_scala.html




12年12月27日木曜日
ご清聴ありがとうございましたm(_ _)m




12年12月27日木曜日

More Related Content

Viewers also liked (20)

KEY
PlayFramework1.x基礎編
Asami Abe
 
PDF
150428 慶応の学生に読ませようと作ったビブリオ あまりにも多すぎるので精選します
Koyo Yamamori
 
PPTX
Mike baker imagenes
Mike Baker Ovarb
 
PDF
HTML5 & CSS3
Eulsoo Jung
 
PPT
2012 BYOiPad Parent Information Evening 2
jarruzza
 
PDF
WebStandards-Basic 4.box
Eulsoo Jung
 
PDF
151121_お台場海苔づくり説明会
Koyo Yamamori
 
PDF
Municipalities and Districts Brochure
Henry Ka
 
DOCX
Cua đồng rang me
Các Món Ăn Ngon
 
PDF
150430 教育学特殊XIV 第3講
Koyo Yamamori
 
DOCX
Cách mới để món cá sốt cà ri ngon bất ngờ
Các Món Ăn Ngon
 
PPTX
For chiropractic to progress it no longer needs Philosophy?
Braddon Atkinson
 
PDF
FloBoard SlideShare
FloBoard
 
PDF
150929 教育評価論(三田)第1講
Koyo Yamamori
 
PPSX
Charts
Aldercy Lam
 
PPTX
Edema tx
Joriz Abel
 
PDF
150430 教育学特殊14 レクチャーパケットの表紙
Koyo Yamamori
 
PDF
Regal
Nigel Stewart
 
PDF
Anteprima modulo 3
eAgisco
 
PDF
Благотворительный фонд "Красивые дети в красивом мире"
Любовь Полякова
 
PlayFramework1.x基礎編
Asami Abe
 
150428 慶応の学生に読ませようと作ったビブリオ あまりにも多すぎるので精選します
Koyo Yamamori
 
Mike baker imagenes
Mike Baker Ovarb
 
HTML5 & CSS3
Eulsoo Jung
 
2012 BYOiPad Parent Information Evening 2
jarruzza
 
WebStandards-Basic 4.box
Eulsoo Jung
 
151121_お台場海苔づくり説明会
Koyo Yamamori
 
Municipalities and Districts Brochure
Henry Ka
 
Cua đồng rang me
Các Món Ăn Ngon
 
150430 教育学特殊XIV 第3講
Koyo Yamamori
 
Cách mới để món cá sốt cà ri ngon bất ngờ
Các Món Ăn Ngon
 
For chiropractic to progress it no longer needs Philosophy?
Braddon Atkinson
 
FloBoard SlideShare
FloBoard
 
150929 教育評価論(三田)第1講
Koyo Yamamori
 
Charts
Aldercy Lam
 
Edema tx
Joriz Abel
 
150430 教育学特殊14 レクチャーパケットの表紙
Koyo Yamamori
 
Anteprima modulo 3
eAgisco
 
Благотворительный фонд "Красивые дети в красивом мире"
Любовь Полякова
 

Similar to 20121222 scalaビギナーズ (20)

PDF
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
Ouka Yuka
 
PPTX
ゼロから始めるScala文法 (再)
Suguru Hamazaki
 
PDF
たのしい関数型
Shinichi Kozake
 
PDF
Essential Scala 第5章 シーケンス処理
Takuya Tsuchida
 
PDF
命令プログラミングから関数プログラミングへ
Naoki Kitora
 
PDF
15分でざっくり分かるScala入門
SatoYu1ro
 
PDF
fanscala1 2 scalaの基本
Toshiki Shinozaki
 
KEY
Beginners Scala in FAN 20121009
Taisuke Shiratori
 
PDF
関数プログラミングことはじめ
Naoki Kitora
 
PDF
関数プログラミング入門
Hideyuki Tanaka
 
PDF
プログラミング言語Scala
TanUkkii
 
PDF
関数プログラミング ことはじめ (再)
Suguru Hamazaki
 
PDF
Hokuriku Scala 1
NISHIMOTO Keisuke
 
PDF
BOF1-Scala02.pdf
Hiroshi Ono
 
PDF
BOF1-Scala02.pdf
Hiroshi Ono
 
PDF
第2回関数型言語勉強会 大阪
Naoki Kitora
 
PDF
Javaプログラミング入門
なおき きしだ
 
PDF
Kotlinの紹介
Taro Nagasawa
 
PPTX
2013-12-08 西区プログラム勉強会
Takatoshi Murakami
 
PDF
Scala超入門 - 2014/12/13 Scala関西勉強会
Asami Abe
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
Ouka Yuka
 
ゼロから始めるScala文法 (再)
Suguru Hamazaki
 
たのしい関数型
Shinichi Kozake
 
Essential Scala 第5章 シーケンス処理
Takuya Tsuchida
 
命令プログラミングから関数プログラミングへ
Naoki Kitora
 
15分でざっくり分かるScala入門
SatoYu1ro
 
fanscala1 2 scalaの基本
Toshiki Shinozaki
 
Beginners Scala in FAN 20121009
Taisuke Shiratori
 
関数プログラミングことはじめ
Naoki Kitora
 
関数プログラミング入門
Hideyuki Tanaka
 
プログラミング言語Scala
TanUkkii
 
関数プログラミング ことはじめ (再)
Suguru Hamazaki
 
Hokuriku Scala 1
NISHIMOTO Keisuke
 
BOF1-Scala02.pdf
Hiroshi Ono
 
BOF1-Scala02.pdf
Hiroshi Ono
 
第2回関数型言語勉強会 大阪
Naoki Kitora
 
Javaプログラミング入門
なおき きしだ
 
Kotlinの紹介
Taro Nagasawa
 
2013-12-08 西区プログラム勉強会
Takatoshi Murakami
 
Scala超入門 - 2014/12/13 Scala関西勉強会
Asami Abe
 
Ad

More from Asami Abe (13)

PDF
ScalaでBacklogの通知bot作ったで
Asami Abe
 
PDF
【ScalaMatsuri2016】関西のScalaコミュニティ紹介
Asami Abe
 
PDF
関西Java女子部とScala関西勉強会のご紹介
Asami Abe
 
PDF
makeのススメ
Asami Abe
 
PDF
Scala.js触ってみた
Asami Abe
 
PDF
2015/11/15 Javaでwebアプリケーション入門
Asami Abe
 
PDF
フリーランスエンジニアになって1年が経ちました - 俺聞け4
Asami Abe
 
PDF
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
Asami Abe
 
PDF
Introduction of Scala Kansai Beginners (ScalaMatsuri2014LT)
Asami Abe
 
PDF
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
 
PDF
Play2+Scala事始め
Asami Abe
 
PDF
【俺聞け5】私とflashとhtml5&java script
Asami Abe
 
KEY
Scalaはじめました!
Asami Abe
 
ScalaでBacklogの通知bot作ったで
Asami Abe
 
【ScalaMatsuri2016】関西のScalaコミュニティ紹介
Asami Abe
 
関西Java女子部とScala関西勉強会のご紹介
Asami Abe
 
makeのススメ
Asami Abe
 
Scala.js触ってみた
Asami Abe
 
2015/11/15 Javaでwebアプリケーション入門
Asami Abe
 
フリーランスエンジニアになって1年が経ちました - 俺聞け4
Asami Abe
 
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
Asami Abe
 
Introduction of Scala Kansai Beginners (ScalaMatsuri2014LT)
Asami Abe
 
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
 
Play2+Scala事始め
Asami Abe
 
【俺聞け5】私とflashとhtml5&java script
Asami Abe
 
Scalaはじめました!
Asami Abe
 
Ad

Recently uploaded (8)

PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 

20121222 scalaビギナーズ

  • 1. Scalaやろうぜ! by Abe Asami 12年12月27日木曜日
  • 2. 自己紹介 Abe Asami きの子 (フリーエンジニア) http://nocono.net/ Twitter: @aa7th 使用言語:Java、C#など 12年12月27日木曜日
  • 4. 2012/11/24(土) 第2回 関数型言語勉強会 大阪にて http://nocono.net/12 12年12月27日木曜日
  • 7. また2日前から焦ってちょっと 頑張りました 12年12月27日木曜日
  • 8. というわけで・・・ 初心者による初心者のためのScala講座 はじまりはじまり 12年12月27日木曜日
  • 9. Scalaって何? JVM言語 オブジェクト指向であり関数型 ポストJavaとして注目されている 12年12月27日木曜日
  • 10. メリット Javaと比較して簡潔に記述できる (コード量が1/2∼1/3は減る) 静的型付け、事前コンパイル Javaライブラリ利用可能 並行処理に強い 12年12月27日木曜日
  • 11. メリット Javaと比較して簡潔に記述できる (コード量が1/2∼1/3は減る) 静的型付け、事前コンパイル Javaライブラリ利用可能 並行処理に強い スケーラビリティが高い 12年12月27日木曜日
  • 12. デメリット コンパイルが遅い エンジニアが少ない 関数型についての学習コスト が高い 12年12月27日木曜日
  • 13. 関数型って? 関数を値(リテラル)として扱う言語 数学的な関数のこと 「副作用」を極力避ける コンピュータの論理的な状態を変化させない! 変数への代入を避けて定数を使用する イミュータブル 12年12月27日木曜日
  • 14. 副作用がないと... 変数に想定外の値がはいっていた! というような事態がない 並行処理がこわくなくなる 12年12月27日木曜日
  • 15. 副作用がないと... 変数に想定外の値がはいっていた! というような事態がない 並行処理がこわくなくなる バグが減少する 12年12月27日木曜日
  • 17. インストール http://www.scala-lang.org/downloads もしくはHomebrewで brew install scala 12年12月27日木曜日
  • 18. REPLで実行 $scala 12年12月27日木曜日
  • 19. REPLで実行 scala> val num = 5 num: Int = 5 12年12月27日木曜日
  • 20. 変数と定数 scala> val num = 5 num: Int = 5 val = 定数 var = 変数 12年12月27日木曜日
  • 21. 型推論 scala> val num = 5 num: Int = 5 型宣言しなくていい! 12年12月27日木曜日
  • 22. 基本型 scala> val num = 5 num: Int = 5 Intクラス型 コンパイル時にintに変換される 12年12月27日木曜日
  • 23. セミコロン推論 scala> val num = 5 num: Int = 5 セミコロンを省略できる 12年12月27日木曜日
  • 24. 次のJavaプログラムを 初心者なりにScalaで書き換えてみました 12年12月27日木曜日
  • 25. Java public class Sum { public static void main(String[] args) { int start = Integer.parseInt(args[0]); int end = Integer.parseInt(args[1]); int sum = 0; for (int num = start; num <= end; num++) sum += num; System.out.println(sum); } } 12年12月27日木曜日
  • 26. Scala object Sum { def main(args: Array[String]) { val start = args(0).toInt val end = args(1).toInt var sum = 0 for (num <- start to end) sum += num println(sum) } } 12年12月27日木曜日
  • 27. Scala シングルトンクラス object Sum { def main(args: Array[String]) { val start = args(0).toInt val end = args(1).toInt var sum = 0 for (num <- start to end) sum += num コレクション(Range) println(sum) } } 12年12月27日木曜日
  • 29. var sum = 0 for (num <- start to end) sum += num val sum = (0 /: (start to end)) (_+_) 12年12月27日木曜日
  • 31. var sum = 0 for (num <- start to end) sum += num def add(x:Int, y:Int) : Int = {x + y} val sum = (start to end).foldLeft(0)(add) 初期値 リストの各要素に対して ※引数が分割されている 行う処理 12年12月27日木曜日
  • 32. def add(x:Int, y:Int) : Int = {x + y} val sum = (start to end).foldLeft(0)(add) 戻り値の型省略 1行なので 中括弧省略 def add(x:Int, y:Int) = x + y val sum = (start to end).foldLeft(0)(add) ・等号を省略すると戻り値無しとみなされる ・戻り値型の省略はほどほどに (分かりにくくなるかも) 12年12月27日木曜日
  • 33. def add(x:Int, y:Int) = x + y val sum = (start to end).foldLeft(0)(add) 無名関数 val sum = (start to end).foldLeft(0)((x, y) => x + y) 12年12月27日木曜日
  • 34. val sum = (start to end).foldLeft(0)((x, y) => x + y) プレースホルダー val sum = (start to end).foldLeft(0)(_+_) ※引数が1回しか使われない場合のみ 12年12月27日木曜日
  • 35. val sum = (start to end).foldLeft(0)(_+_) foldLeftの別名 val sum = (start to end)./:(0)(_+_) 12年12月27日木曜日
  • 36. val sum = (start to end)./:(0)(_+_) val sum = (0 /: (start to end)) (_+_) 演算子記法 12年12月27日木曜日
  • 38. Scala(最終版) object Sum { def main(args: Array[String]) { println((0 /: (args(0).toInt to args(1).toInt)) (_+_)) } } 追記:ここまでやると可読性が下がるので、    程々のところで止めておくのがよいとのことです。    というか、リストの合計を出すsum関数があるので、実際は    (args(0).toInt to args(1).toInt).sum    でOK! 12年12月27日木曜日
  • 39. Before After public class Sum { object Sum { public static void main(String[] args) { def main(args: Array[String]) { int start = Integer.parseInt(args[0]); println((0 /: (args(0).toInt to args(1).toInt)) (_+_)) int end = Integer.parseInt(args[1]); } } int sum = 0; for (int num = start; num <= end; num++) sum += num; System.out.println(sum); } } 12年12月27日木曜日
  • 40. Before After public class Sum { object Sum { public static void main(String[] args) { def main(args: Array[String]) { int start = Integer.parseInt(args[0]); println((0 /: (args(0).toInt to args(1).toInt)) (_+_)) int end = Integer.parseInt(args[1]); } } int sum = 0; for (int num = start; num <= end; num++) sum += num; System.out.println(sum); } } / ドヤァ...\ 12年12月27日木曜日
  • 41. どうやらリスト操作を覚えると 割と簡単に関数型ちっくな書き方が できるようです 12年12月27日木曜日
  • 42. リスト操作については この後@mumoshuさんのセッションにて! 12年12月27日木曜日
  • 43. 慣れないうちはこの書き方でも 良いと思います object Sum { def main(args: Array[String]) { val start = args(0).toInt val end = args(1).toInt var sum = 0 for (num <- start to end) sum += num println(sum) } } 12年12月27日木曜日
  • 45. おすすめ書籍 通称:コップ本 12年12月27日木曜日
  • 46. お役立ちサイト 「Coursera」(英語) https://www.coursera.org/ 「Hishidama s Scala Memo」 http://www.ne.jp/asahi/hishidama/home/tech/scala/index.html 「Scala Cookbook」 http://www.ne.jp/asahi/hishidama/home/tech/scala/index.html 12年12月27日木曜日
  • 47. お役立ちサイト 「刺激を求める技術者に捧げるScala講座(ITPro)」 http://itpro.nikkeibp.co.jp/article/COLUMN/20080613/308019/ 「Scala入門(@IT)」 http://www.atmarkit.co.jp/fjava/index/index_scala.html 12年12月27日木曜日