2011-09-01から1ヶ月間の記事一覧

部分継続の利用例。

めも。 途中でreturn (use gauche.partcont) (use util.match) (define (times xs) (fold * 1 xs)) (times '(1 2 3)) ; => 6 ;; (times '(1 2 0 "foo")) ; => *** ERROR: operation * is not defined between "foo" and 0 (define (times/pc xs) (fold (lamb…

あそび(cprofiler, graphviz)

準備 環境 ubuntu install sudo aptitude install python-cprofiler graphviz sudo pip install gprof2dot 利用 file #!/bin/sh out="stat" python -m cProfile -o $out.prof $@ gprof2dot -f pstats $out.prof > $out.dot dot -o$out.png -Tpng $out.dot ru…

比較関数を追加可能なcomparator

夕方にちょっと話にでてきたので想像で実装してみた。 class ExtensibleComparator(object): def __init__(self): self.ops = [] def __call__(self, x, y): for op in self.ops: n = op(x, y) if n == -1: return -1 elif n == 1: return 1 return 0 def ad…

formをレンダリングしたときにinput要素を使わないようにする(django)

確認画面を作るときなどに使えるかも class XForm(forms.Form): item = forms.ChoiceField(choices=[(i, i) for i in xrange(3)]) data = forms.DateTimeField(required=False) class ReadOnlyWidget(forms.Widget): def render(self, name, value, attrs=No…

ModelFormのような内部のMetaを見るFormを自分で作る

ModelFormのように、内部のMetaを見るクラスを自分で作って見たいと思った。 概要 djangoでは、以下のようにMetaを使ってmetaclassに情報を渡して、Formクラスを作れる。 class ArticleForm(ModelForm): class Meta: model = Article また、以下のようにfiel…