PythonではじめるiOSプログラミング

いつもの如くジュンク堂を冷やかしてたら発売されていたので購入。
iOSで動作するPythonの開発環境である Pythonista3 の解説書。
著者の掌田津耶乃は確かMac関連の雑誌でライターをしていた人で、最近はやたらめったらビギナー向けの入門書を書きまくってる印象の人。普段はこの人の対象とする読者層からずれてるので買うことはないが、Pythonista3 の解説書ということで無条件購入。

内容は1章が概説、2章がNumPy, SymPy, matplotlib のざっくりとした解説、3章からがPythonista固有のUIライブラリや2Dゲーム開発用の SceneやNode、iOS固有の機能を利用するためのライブラリとそのサンプルプログラムの解説となっている。ちなみに、Python については巻末の付録で文法についての簡易リファレンスがついているだけで解説はない。したがってある程度のPythonの知識のある人が前提の本になっている。Pythonに関する入門書は腐るほどあるのでその判断は正しいと思うが、それなら、2章のNumPyなどの数学ライブラリの解説もいらんのではないかと思った。

3章以降のPythionista3固有のライブラリの解説は、さすがに入門書をたくさん書いているだけあって熟れた感じでさくさく読める。いくつか趣味に合わない表現などがあって気になる箇所はあったものの、思ってた以上に入門書としてキチンとした内容で、ちょっと掌田津耶乃さんなめてましたスイマセンという気持ちに。

Rust 入門 : FizzBuzzを書いてみる。

Rust に入門してみる。

最初のプログラムということで、難しいことを考えず素直ににFizzBuzzを書いてみる。
若いころは最初に書くプログラムといえば Hello world と相場は決まっていたが、最近はFizzBuzzなのだそうだ。そもそも、Rust だとプロジェクトを生成すると雛形のソースが Hello world になっておりわざわざ書く必要もない。

まず、適当なディレクトリで、

% cargo new fizz_buzz
  Created binary (application) `fizz_buzz` package

とやって、プロジェクトを作成して、生成されたmain.rsを書き換える。
1から100までの数列の生成方法と、パターンマッチのやりかたを適当にググって書いて見ると以下のような感じに。

// Fizz Buzz
fn main() {
    for n in 1..101 {
        match n {
            x if (x % 3 == 0 && x % 5 == 0) => println!("Fizz Buzz"),
            x if (x % 3 == 0) => println!("Fizz"),
            x if (x % 5== 0) => println!("Buzz"),
            _ => println!("{}", n)
        }
    }
}

cargo run でコンパイルと実行ができるようなのでやってみる。

% cargo run
   Compiling fizz_buzz v0.1.0 (/Users/osamu/Projects/rust/fizz_buzz)
    Finished dev [unoptimized + debuginfo] target(s) in 0.22s
     Running `target/debug/fizz_buzz`
1
2
Fizz
4
Buzz
Fizz
...

とりあえずエラーもなく動いた。