# coding: utf-8 import __builtin__ from functools import partial # NOTE: hasnodes=operator.isSequenceType # では文字列ノードが文字のシーケンスと解釈されて困ることがある。 # XXX: maxdepthを再帰呼び出しのlimitとして指定する場合、 # 根拠のある数のある数の方がいいかもしれない。 def tree_map(func, tree, hasnodes=lambda x:isinstance(x,list), getnodes=__builtin__.iter, mapfunc=__builtin__.map, depth=0, maxdepth=64): assert maxdepth > depth # NOTE: 再帰で呼び出しする関数を内部関数とすることで余分な引