fc2ブログ

makopi23のブログ

makopi23が日々の生活で感じたことを気ままに綴るブログです。

「初心者Scala in F@N 第一回」に参加しました

2012/9/25(火) 「初心者Scala in F@N 第一回」に参加してきました。

こくちーず(告知サイト)
http://kokucheese.com/event/index/52806/

Haskellを勉強し始めてから、Scalaにもすごく興味あったんですよねー。同じ関数型言語だし。
でもScalaを始める良いキッカケが無かったんで、初心者向けの勉強会とかないかなーと思ったりしてました。
んで、ちょうどこの勉強会が運良く見つかったんで、今回参加することにした次第なのです。

会場は渋谷のファンコミュニケーションズです。参加者は10名くらいでしょうか。
ちなみに以前、ファンコミュニケーションズさんはアジャイルサムライ読書会も主催してました。
んで、私も何回か行ったことがあります。

今日は初回ということで、「ScalaのインストールからREPLとビルドツールの使い方、HelloWorldまで」がテーマだそうです。




fanscala1 1 インストールとreplまで from gkojax


Scala処理系のインストール

最初はWindows7にScalaの処理系をインストールするトコからです。
まず、Typesafe Stackインストーラを以下のサイトからダウンロードします。
http://typesafe.com/stack/download

んで、インストーラのEXEをダブルクリックすると、

install_fail.jpg

なんと!ウイルスバスターに阻まれてしまうではありませんか。。。
しょうがないので、ウイルスバスターを一時的にOFFにしてインストールしました。

またLinux(Ubuntu)も仮想環境で使えるようにしてるので、こちらにもScalaをインストールしておきました。

これでコマンドプロンプトから scala と入力すると、REPL(対話型評価環境)が起動するようになります。
文字列を表示するには、println関数を使います。セミコロンは必要ないようです。
scala_start.jpg


あと、Eclipseのpluginもインストールしてみました。使い物になるかどうかは、これから評価~。


pasteモード

:paste と入力するとpasteモードに移行し、プログラムをプロンプトに貼り付けて実行することができます。
Fizzbuzzのプログラムを書いたあと、pasteモードのプロンプトに貼り付け、「Ctrl - d」で実行してみました。

scala_fizzbuzz.jpg

Scalaの文法わからんかったですが、Javaの文法で書いてみたらほぼ一発で動作しました!
Scalaの文法ってJavaと似てるんですねー、Javaでそのまま書いただけで動作した感じです。
これは普段Java使ってる私にとって、Scalaは習得しやすそうです。



fanscala1 2 scalaの基本 from gkojax


他にも以下を内容を学びました。

■再代入できない変数宣言の方法

■型指定と型推論

■カリー化

■Listに関する関数(map, foreach, filter, zip, partition, foldLeft, foldRight)
---

カリー化やListに関する関数は、「スタートHaskell」の勉強会でHaskellやってたおかげで理解できましたね。
でも、同じ関数型とはいえ、HaskellとScalaの流儀はだいぶ違うように感じます。
Scalaはどっちかというと、HaskellよりもJavaの方に似ている感じです。



fanscala1 4 その他資料 from gkojax


休憩時間にはお菓子が振舞われました。
またScalaに関する書籍が何冊か置いてあったので、主催者さん方にどれがオススメか聞いたりしました。



そんなこんなで、基本的な内容を学んでお開きになりました。
かなり初歩的な内容から入りましたが、私のようなScalaのインストールさえしてなかった参加者にとっては
ちょうどよかったかも。
逆に、Scalaの経験者にとっては、すこし物足りない内容だったのかもしれません。
もう少し踏み込んだ内容は第二回以降で扱われるようなので、経験者さんは2回目からの参加でも大丈夫そうです。

これを機に、Scalaも勉強してみたいと思っています。
ただ、第二回の開催日である10/9、別件が入ってしまっていて参加できそうにないのが残念です。。。
第三回に期待!

Scalaの一歩を踏み出す機会を提供くださったファンコミュニケーションズさん、ありがとうございました。

-->