ブックマーク / inforno.net (1)

  • inforno :: Python: パターンマッチしてみる

    なんか、趣味では最近はC言語ばっかりだったりするわけですが。 さて、関数型言語系をカジった人なら誰しも取り付かれる、モノ、それがパターンマッチ。パターンマッチが使えると、とにかく直感的にコードをかけますよね。 つーわけで、Pythonでパターンマッチを実装してみました。機能的には リスト,タプルに対するパターンマッチ パターン変数への束縛 ガード条件 任意のオブジェクトに対するパターンマッチ 部分パターンの束縛(Ocamlのas) あたりを実装してみました。これだけあれば、かなり便利にコードをかけます。できるだけ、手軽に書けるように工夫してみました。こんな感じです。 変数束縛とガード。 getattr でごにょごにょしてるので簡単にかけます。 1m = Match([1,2,3]) 2if m.when([1,2,m.var]) and m.var > 2: 3 print m.var 4

  • 1