SCALAの記事一覧

Top / Scala チュートリアル

目次

リンク

とりあえず、リンク集をリンクしといたよ。

これなら、勝手にリンクがメンテしてもらえるから、らくちんだよね。

http://diaspar.jp/-/scala

Scala2.8の仕様変更

http://www.slideshare.net/takedasoft/scala28-3334803

Scala for Java programmers

http://www.asterisk-works.jp/wiki/index.php/Scala_for_Java_programmers#.E3.82.AF.E3.83.A9.E3.82.B9.E5.AE.A3.E8.A8.80

java使いのためのScala の勉強のタメの資料作り javaと連携

http://d.hatena.ne.jp/nazoking/20100513/1273688373

JavaにScalaを放り込む

基礎を終えた人のScalaミニtips

http://inforno.net/articles/2008/02/03/some-scala-tips-for-beginners

C言語ライクなforはどうかくの?

val a = Array(1,2,3,4,5) 
var i= -1;while({i += 1; i < a.size;}) { 
  println(a(i)) 
} 

Predef

def exit(status: Int): Nothing = { 
  java.lang.System.exit(status) 
  throw new Throwable() 
} 
  
def assert(assertion: Boolean) { 
  if (!assertion) 
    throw new java.lang.AssertionError("assertion failed") 
} 
  
def print(x: Any) = Console.print(x) 
def println() = Console.println() 
def println(x: Any) = Console.println(x)

applyでオブジェクトをメソッドのように呼び出せるよね? hoge(index) = valueはオーバーライドできないの?

object dictionary { 
val data = Array(null, "A","B","C") 
  
def apply(x:String) = x match { 
 case "one" => data(1) 
 case "two" => data(2) 
 case "three" => data(3) 
} 
  
def update(x:String,y:String) = x match { 
 case "one" => data(1) = y 
 case "two" => data(2) = y 
 case "three" => data(3) = y 
} 
  
} 
dictionary("one") = "X" 
dictionary("two") = "Y" 
dictionary("three") = "Z" 
println(dictionary("one")+","+dictionary("two")+","+dictionary("three"))

可変長引数は取れますか。また、リストや配列を展開してメソッドにわたせますか。

def sumPlus(plus: Int, n: Int*) = plus + sum(n :_*)

JAVAのObject型可変長変数をとるメソッドはどう呼びますか?

String.format("%d %s", List(1, "hoge").map(_.asInstanceOf?[AnyRef?]).toArray)

インスタンスのメソッドを束縛できますか?そのとき、メソッドがオーバーロードされている場合はどうしますか?

val format = (new SimpleDateFormat?("dd")).format _:Date => String

カリー化はできますか?

def test(i:int, j:int) = { 
 printf("i:{0}, j:{1}", i, j) 
} 
val f = Function.curried(test _)(1) 
f(1) 

遅延評価は?

lazyを使います。Streamも使いこなせるとハッピーです。

たとえば、無限フィボナッチ数列は以下のように定義します。

lazy val fib: Stream[Int] = Stream.cons(0, 
    Stream.cons(1, fib.zip(fib.tail).map(p => p._1 + p._2)))

日本語プログラミング言語Scala

http://inforno.net/articles/2008/03/04/japanese-language-programing-in-scala

SlideShare?サービスによるプレゼン風チュートリアル

http://www.slideshare.net/oukayuka/scala-2272552

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-06-09 (水) 01:23:31 (5063d)