2012年6月23日土曜日

Pythonの復習

最近Pythonさわってなかったので。

FizzBuzz



なんのへんてつもないコード。

yield使って、generatorにしてみる。


このケースならitertoolsを使ったほうがカッコイイ。


countはnからstep(デフォルトは1)づつ増えていくgeneratorを作る関数です。
mapはいつの間にかイテレータに対応してくれてました。

素数


判定を書く


functoolsとoperatorで関数型っぽく書けて素敵ですね。
functools.partialは部分適用、operator.modは剰余です。

素数列を作る


なかなかいい感じ。

フィボナッチ数列


n番目のフィボナッチ数を返す関数


dict使って分岐する


switch的なものはdictで代用できるのでもーまんたいですね。
getの第二引数はキーが存在しない場合返ります。

イテレータ版


Pythonはなかなか関数型言語ちっくに書けて素敵ですね。
Rから始まる4文字のプログラミング言語より関数型っぽいです。

0 件のコメント:

コメントを投稿