splatter
この Python コードを検討してください。
def splatter(fn):
return lambda (args): fn(*args)
def add(a, b):
return a + b
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print map(splatter(add), zip(list1, list2))
n個の圧縮されたシーケンスにn項関数をマッピングすることは、すでに名前が付けられている可能性があるほど一般的な操作のようですが、どこでそれを見つけることができるかわかりません。それは漠然とカリー化を連想させ、私が聞いたことのない他の関連する引数中心の HOF があるようです。これが「よく知られている」関数であるかどうかは誰にもわかりますか? それについて議論するとき、私は現在、質問のタイトルで使用されているタイプの厄介な言語にこだわっています.
編集
うわー、Pythonmap
はこれを自動的に行います。あなたは書ける:
map(add, list1, list2)
そして、それは正しいことを行い、splatter
あなたの関数を ing する手間を省きます。唯一の違いはzip
、長さが最短の引数の長さであるリストを返すのに対し、map
は短いリストを で拡張することNone
です。