次のようにリストを削減する汎用関数を作成しようとしています:
func(['a','b','c'],str.join) # --> ['a','b','c','ab','ac','bc','abc']
func(['a','b','c'],lambda: a,b:a+'x'+b) # --> ['a','b','c','axb','axc','bxc','axbxc']
どうすればいいのかよくわかりません。いくつか試してみましたが、どれも成功しませんでした。reduce でそれを行う方法があると確信していますが、この関数の使用にはあまり慣れていません。ここにいくつかの試みがあります:
reduce(lambda a,b:[a,b,str(a)+str(b)],['a','b','c'])
reduce(str.join,['a','b','c'])
どこかで再帰が欠けていると思います。
特にコードを求めているわけではありません。助けやアドバイスは大歓迎です。ありがとう。