壓縮列表

Version = GNU make

這個 pairmap 函式有三個引數:

  1. 功能名稱
  2. 第一個以空格分隔的列表
  3. 第二個以空格分隔的列表

對於列表中的每個壓縮元組,它將使用以下引數呼叫該函式:

  1. 第一個列表中的元組元素
  2. 第二個列表中的元組元素

它將擴充套件為以空格分隔的函式擴充套件列表。

list-rem = $(wordlist 2,$(words $1),$1)
pairmap = $(and $(strip $2),$(strip $3),$(call \
    $1,$(firstword $2),$(firstword $3)) $(call \
    pairmap,$1,$(call list-rem,$2),$(call list-rem,$3)))

例如,這個:

LIST1 := foo bar baz
LIST2 := 1 2 3

func = $1-$2

all:
    @echo $(call pairmap,func,$(LIST1),$(LIST2))

.PHONY: all

將列印 foo-1 bar-2 baz-3