2012年3月11日日曜日

LIFT そういやSBTを入れよう

0 コメント
SBT (simple build tool) を入れてみます。Macに。

homebrew 入れてない人は入れたららくですよ!!うらっ!!!w
> brew install sbt
==> Downloading http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/0.11.2/sbt-launch.jar
######################################################################## 100.0%
==> Caveats
You can use $SBT_OPTS to pass additional JVM options to SBT.
For convenience, this can specified in `~/.sbtconfig`.

For example:
    SBT_OPTS="-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
==> Summary
/usr/local/Cellar/sbt/0.11.2: 3 files, 1.0M, built in 5 seconds

はい、インストール完了ー


で、プロジェクトのディレクトリで sbt 実行

> sbt
 :
 :
 :
unresolved dependency: org.scala-tools.sbt#sbt_2.9.1;0.7.4: not found
Error during sbt execution: Error retrieving required libraries
  (see /Users/yusuke/.sbt/boot/update.log for complete log)
Error: Could not retrieve sbt 0.7.4

うおっ。。。エラー。。

Could not retrieve sbt 0.7.4ってことで、
scalaのプロジェクト配下の project/build.propaties の sbt.version に先程のsbtのバージョン 0.11.2 を指定。

> sbt

これで、こんどこそ行けました。
Continue reading →

Scalaのお勉強 part3

0 コメント
たいした話じゃないです。ただ、関数呼び出しについて少しメモ。

def hoge(before:String, after:String) = {
    str1 + " " + str2
}

こんな関数を定義したとする。これを使用するとき、第一引数には beforeの値を、第二引数にはafterを与えますよね。

scala> hoge("前", "後")
res0: java.lang.String = "前 後"

こんな感じで。しかし、Scalaでは、名前付き引数を使用することもできます。

scala> hoge(after="後", before="前")
res1: java.lang.String = "前 後"

こんな感じ。

どちらも併用することができるけど、前者の順番に与える奴は先頭に書き、名前付き引数は後ろに書くこと。
それだけ。
Continue reading →

Scalaのお勉強 part2

0 コメント
さぁ、Scalaのお勉強 part2 です。

Scalaを知りたいという方!!こんなブログ読むより、コップ本呼んだほうがいいよ!!



ってのが本音だけど、まぁ、少し書きます。。。

// クラスの定義方法
class HogeHoge{
    val mogera = "mogera"
    def piyo() = {
         mogera
    }
}

// オブジェクトを作成
val hoge = new HogeHoge

こんな感じ。val や def の前にprivateの修飾子をつければ、private変数にできたり、なにも付けなければpublicになります。


コレとは別に、Scalaには シングルトンオブジェクトってものがあります。
classキーワードではなく、objectキーワードで宣言すると、singletonオブジェクトになる。
object HogeHoge{
    val hoge = new HogeHoge
    def piyopiyo = { hoge.piyo() }
}

// シングルトンオブジェクトのメソッドの呼び出し方
HogeHoge.piyopiyo()



シングルトンオブジェクトが、クラスと同名の場合、これをコンパニオンオブジェクトと呼ぶらしいです。
で、コンパニオンオブジェクトはお互いの非公開メンバーにアクセス可能。


うん。おもしろいですね。

あと、コップ本6章とかおもしろかった!!!説明はしないので、是非買って読んでくれー!
Continue reading →

Scala - まさかのunicodeで宣言

0 コメント
scala> val B\u0041\u0044 = "1"
BAD: java.lang.String = 1

こんなかんじで unicode で記述しても ちゃんと変数名は認識されるらしい。
使わんけど、すげえwwww
Continue reading →
2012年3月10日土曜日

Scalaのお勉強 part1

0 コメント
正直自分は, 学校でほんのすこしだけScalaを習ったことある程度なので、ホント初心者です。
そんな人がScalaを使用できるようになるために、少しずつ書いていきます。

よろしくです。

// ① val を使った変数宣言   (Javaのfinalのようなもの。後で変更不可)
val hoge = 1
hoge = 2 // これがエラーに成る

// ② var を使った変数宣言   (val と違って変更可能)
var mogera = 1
mogera = 2 // 変更可能

// ③ 関数は def で定義   返り値の型は指定しなくても、コンパイラが推論してくれる。(ただ、再帰とかの場合は明示する必要あり)
def max(x: Int, y: Int): Int = {
    if (x > y)
        x
    else
        y
}

// ④ valで定義した変数に再代入は不可だが、それが参照するオブジェクトは変更可能 (例えば、配列をvalで宣言した場合、配列そのものの変数は変更不可だけど、配列の中身は変えられる。)
val piyo = Array("bar", "biz", "moge")
piyo = Array( .... ) //これはエラー
piyo(0) = "hogehoge" // これはOK


基本の基本はこんな感じです。

コップ本によると、できるだけvalやimmutable (immutableがなんなのかは割愛) なものを使うようにしたほうが良いよ!ってありますです。

Scala的変数とか関数とか。 とかの記事を見させて頂くと、なんとなくScala面白いかも!って解ると思います!! (リンクは勝手に張ってしまいました。すいません。。)


ちなみに、rubyっぽく、こんなこともできちゃいます。
scala> "(^^)" * 10
res0: String = (^^)(^^)(^^)(^^)(^^)(^^)(^^)(^^)(^^)(^^)
Continue reading →
2012年2月16日木曜日

Scala Bundle for Textmate

0 コメント
Textmate用の Scala Bundle を作成されている方がいたので、インストールしてみた。

それがコチラ → mads379 / scala.tmbundle




ちゃんとカラーリングされてますねー。よしよし。
Continue reading →
2012年2月15日水曜日

Mac に Scala, Liftのインストール

0 コメント
ブログにも、ScalaとLiftのインストールの仮定を一応メモ。

① homebrewインストール

Mac Book Air にしてから、なんだかんだでhomebrew入れ忘れてたので、ここでちゃんとインストールしといた。
> ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
macport使ってる人は、ちゃんと削除したほうが良いらしいです。
homebrewは便利なので、入れといて損はないというか、入れるべきですね。


② scalaのインストール

> brew install scala
これだけでインストールできます。楽ですね。
アンインストールしたかったら、 brew uninstall [パッケージ名] でできます。

ちなみに、scala -version の結果は
Scala code runner version 2.9.1.final -- Copyright 2002-2011, LAMP/EPFL
です

③ mvnでLiftをインストール

まずmavenのバージョン確認。(Lionに初めから入ってます(Xcode入れたからかな?))
ちなみにバージョンはApache Maven 3.0.3

もし入っていない場合は、
> brew install maven

以下のコマンドでhogehogeというプロジェクトが作成されます。
mvn archetype:generate -U \
  -DarchetypeGroupId=net.liftweb \
  -DarchetypeArtifactId=lift-archetype-basic_2.9.1 \
  -DarchetypeVersion=2.4-M5 \
  -DarchetypeRepository=http://scala-tools.org/repo-releases \
  -DremoteRepositories=http://scala-tools.org/repo-releases \
  -DgroupId=com.hoge \
  -DartifactId=hogehoge \
  -Dversion=1.0

http://www.assembla.com/wiki/show/liftweb/Using_Maven 参照のこと。ただ、DarchetypeVersionを2.4にしたままだと、エラーでたので、2.4-M5としてます。


これでプロジェクト作成完了です。

④ 起動

hogehogeディレクトリに移動します
cd hogehoge
そして、jettyを起動することで、ブラウザで見れるようになります。(とりあえず以下のコマンドを実行しておけばOK)
mvn jetty:run -U

で、最後にブラウザで http://localhost:8080/にアクセスする。



これで、以下のようなビューが見れればOKです

Continue reading →
2012年1月26日木曜日

これからScalaを勉強していきます!

0 コメント
よろしくお願いします。
Continue reading →

Labels