2014-09-25から1日間の記事一覧

ハノイの塔 テスト

#エントリーポイント def hanoii(n): if isinstance(n,(int)) and n>0: return hanoii_main(1,2,3,n=n) else: raise Exception assert hanoii(1) == [(1,2)] assert hanoii(2) == [(1,3),(1,2),(3,2)] assert hanoii(3) == [ (1,2),(1,3),(2,3),(1,2),(3,1),…

コード

ちっちゃい! コメントのほうが多い! # -*- coding: utf8 -*- "kwmatch.py PUBLIC DOMAIN" class KwMatch(object): #引数の型によって比較関数切り替え cmps={ type:lambda x,y:isinstance(x,y), slice:lambda x,y:y.start set:lambda x,y:x in y, } def __…

サンプルコード

Py2 Py3 ともに動作確認済み ハノイの塔 すっきり! # -*- coding: utf8 -*- from __future__ import print_function from kwmatch import KwMatchif __name__=="__main__": hanoii_main=KwMatch() @hanoii_main.case(n=1) #1枚のとき def _(start,goal,res…

python 関数のオーバーロード (キーワード引数の値編)

pythonにて(Prolog風に?)引数が特定の値になったときに、呼び出す関数を切り替えるクラスを書いてみました。 値によるマッチングで、ハノイの塔などもすっきり 値は 範囲や集合に含まれるかもチェックできる 型チェックなどにも使える (前回書いたのより…