Python例外処理Tips ① 配列要素に対する写像をうまく実装する

例外処理Tipsシリーズ第一弾は

例外処理をうまく利用して列要素に対する写像をうまく実装する方法について説明します

具体的にはいわゆるFortranでいうところのelemental function をpython で実現する際に例外処理をうまく使えるとい話です。

def elemental_function(A, B, function):
    try:
        return [elemental_function(a, b, function) for a, b in zip(A, B)]
    except TypeError as e:
        return function(A, B)

def Sum(A,B):
    return A+B


a=[1,[ 1 ,2]]
b=[2,[ 3  ,4 ]]

print elemental_function(a,b,Sum)

#>[3, [4, 6]]