Tue Sep 10 09:06:57 JST 2013
どれ Scala ってやつを入れてみるか。ブツは ports の lang/scala にある。 2013.05 くらいの ports ツリーで、2.10.1 だった。 ちなみに本家は http://www.scala-lang.org/ だ。
サクっと入った。けど、make install しただけじゃ何もわからんぞなもし。 ほぼノーヒントだな、こりゃ。
Tue Sep 10 09:20:28 JST 2013
ググったら Getting Started 見つけた (便利な世の中だ…)。
動かし方は、大きく3つ。
- scala コマンドでインタプリタが起動するので、そこに打ち込んで操作。
- エディタで .scala なソースを作り、scalac でコンパイル、scala classfile で実行。
- スクリプトに埋め込み、いきなり実行。
scala インタプリタは、こんな感じ。
% scala Welcome to Scala version 2.10.1 (Java HotSpot(TM) Server VM, Java 1.6.0_03-p4). Type in expressions to have them evaluated. Type :help for more information. scala> object HelloWorld { | def main(args: Array[String]) { | println("hello, world!") | } | } defined module HelloWorld scala> HelloWorld.main(null) hello, world! scala> :q %
往年の打ち込み文化を思い出せて楽しい。 数行ならいいけど、実際的には、ちょっとムリ。かな。
コンパイル実行は、java みたいな感じだ、と思えばわかりやすい。
% cat HelloWorld.scala object HelloWorld { def main(args: Array[String]) { println("hello, world!") } } % scalac HelloWorld.scala % ls -l Hello* -rw-r--r-- 1 oresama wheel 599 Sep 10 09:32 HelloWorld$.class -rw-r--r-- 1 oresama wheel 586 Sep 10 09:32 HelloWorld.class -rw-r--r-- 1 oresama wheel 89 Sep 10 09:16 HelloWorld.scala % scala HelloWorld hello, world!
コンパイル時に -d で class ファイルを吐く場所を指定できるのも javac と似たような感じだ。
スクリプト埋め込みは、ちょっと特殊だ。
% cat HelloWorld.sh #!/bin/sh exec scala "$0" "$@" !# object HelloWorld extends App { println("Hello, world!") } HelloWorld.main(args) % ./HelloWorld.sh Hello, world!
起動から実行までワンクッションある。裏でコンパイルしているのだろうね。
HOME | index | prev | next