Jul 3, 2013

Scala メモ

配列定義

# 同時に初期値を与える
val arr = Array( 1, 2, 3 )
( val arr = Array.apply( 1, 2, 3 ) と同義 )

# 初期化だけで後で値を与える
val arr = new Array[ Int ](3)
arr(0) = 1
arr(1) = 2
arr(2) = 3
( arr(0) = 1 は、arr.update( 0, 1 )と同義)

# var で変数だけ定義
var arr: Array[ Int ] = null
arr = new Array(10)


配列の要素を処理
array.foreach( v => 関数本体 )

array.foreach( ( v: 型 ) => 関数本体 )

# 部分適用された関数(partially applied function)
array.foreach( 式 )

for( v <- array ) 式


List定義
Arrayはミュータブルなので、可能な場合はListを使う方がベター

#Listの連結
List( 1, 2 ) ::: List( 3, 4 )

# List の先頭に追加
1 :: List( 2, 3 )

# 末尾に追加
List ( 1, 2 ) :+ 3

# 空のList Nil
1:: 2 :: 3 :: Nil
res0: List[Int]  = List( 1, 2, 3)


注意:
先頭に追加はO(1)だが、末尾追加はO(n)なので、基本的には先頭追加を考える。
先頭追加で最後にreverse することで代用できる場合はそうする。




for式
for( i <- 0 to 2 ) 式
( 0 to 2 は、0.to( 2 ) と同義 scala.collection.immutable.Range.Inclusive = Range(0, 1, 2))



(まだ途中)




Jan 22, 2013

Mac OSX: コマンドで less を css に変換する

npm で、less をインストールし、lessc コマンドを使って、less を css に変換します。

(node.js と npm がインストールされている前提とします。)
(node.js は、ports、brew、公式サイトで配布されているインストーラーのいずれかを使ってインストールします。)
$ node -v
v0.8.17

$ npm -v
1.2.0

$ sudo npm install -g less
(私は、グローバルにインストールしています。)

$ which lessc
/usr/local/bin/lessc

$ lessc -v
lessc 1.3.3 (LESS Compiler) [JavaScript]

$ lessc -x main.less main.min.css
(オプションの詳細は、less -h を参照)


参考サイト

http://lesscss.org/