Scala東北紹介
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,324
On Slideshare
2,025
From Embeds
299
Number of Embeds
4

Actions

Shares
Downloads
10
Comments
0
Likes
1

Embeds 299

http://blog.takeda-soft.jp 293
http://rails.takeda-soft.jp 3
http://www.slideshare.net 2
http://webcache.googleusercontent.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Scala Scala@ 東北 のご紹介
  • 2. 自己紹介
    • 武田ソフト
      • 山形
      • 3. 自営業 SIer
    • Scala 東北
      • 週一回のネット勉強会
  • 4. Scalaとは
    • JavaVM上で動作する関数型言語・オブジェクト型言語のハイブリッド言語
    • 5. Immutable・Statelessな特性を利用した並列処理が得意。Actor-API
    • 6. クロージャーのサポート
    • 7. 静的型付け言語
    • 8. 高度なパターンマッチング機能
    • 9. XML/正規表現リテラル...... etc
  • 10. ようするに Better Java
  • 11. Javaソースコード class Demo { static void main(String[] args){ String str = "A".concat("B").toLowerCase(); System.out.println(str); } }
  • 12. Scalaソースコード object Demo { def main(args:List[String]){ val str:String = "A".concat("B").toLowerCase(); System.out.println(str); } }
  • 13. To Scala object Demo { def main(args:List[String]){ val str:String = "A".concat("B").toLowerCase() System.out.println(str) } }
  • 14. To Scala object Demo { def main(args:List[String]){ val str = "A" concat("B") toLowerCase System.out.println(str) } }
  • 15. To Scala object Demo extends Application{ val str = "A" concat "B" toLowerCase println(str) }
  • 16. よりScalaらしく Java コア API を 勝手に 拡張できる Implicit conversion
  • 17. To Scala val str = "A" plus "B" to_low
  • 18. よりScalaらしく メソッド名に記号が使える!
  • 19. To Scala val str = "A" ~~ "B" vv
  • 20. Scalaソースコード object Demo { def main(args:List[String]){ val str:String = "A".concat("B").toLowerCase(); System.out.println(str); } } こっちが基本
  • 21. ようするに Better Java
  • 22. Javaのここ がきらい
  • 23. Javaのここがきらい getXX setXX getXX setXX
  • 24. Scala class Person( val id:Int , var name:String) { } val takeda = new Person(1,"takedasoft") takeda.id //=>1 takeda.name //=>takedasoft takeda.id = 1 //コンパイルエラー takeda.name = "xxxxxxx"
  • 25. Javaのここがきらい Collection List<String> list = new ArrayList<String>(); list.add(&quot;a&quot;); list.add(&quot;b&quot;); list.add(&quot;c&quot;); for( String str : list ){ System.out.println( str ); }
  • 26. Scala val list = List(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) list.foreach( str => println(str) ) list.map( str => str.toUpperCase )
  • 27. Javaのここがきらい クロージャーが ねぇ!
  • 28. Scala あるよ
  • 29. Javaのここがきらい  正規表現 Pattern pattern = Pattern.compile(&quot;+&quot; ,Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); Matcher matcher = pattern.matcher(&quot;aa 11 bb 22&quot;); for( int i=0; i < matcher.groupCount(); i++ ){ System.out.println(matcher.group(i)); }
  • 30. Scala for( s <- &quot;+&quot;.r findAllIn &quot;aa 11 bb 22&quot; ){ println(s) }
  • 31. Javaのここがきらい XML DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document xml = builder.parse( &quot;<xml><person><name>takedasoft</name></person></xml>&quot;); //以下省略
  • 32. Scala val xml = <xml> <person> <name>takedasoft</name> </person> </xml> xml &quot;name&quot; text //=>takedasoft
  • 33. 忘れないでください Scala is Better Java
  • 34. Scalaのよさをまとめると・・・
    • 静的型付け(ベースはJava)
      • 高速
      • 35. 安全(たとえばXHTML)
    • Lightweight言語的
      • サクッと記述
      • 36. ヘンタイ遊び可
  • 37. Javaのここがきらい コンパイル めんどう
  • 38. Scala デモ 対話環境 あるよ