一种以一阶语言表示较高阶函数的方法。巨集无法在最顶层递回但仍可内含递回定义如:
map f l = m l
where
m []=[]
m(x:xs)=f x : m xs
扩展上述巨集可视为一特定的呼叫用以映射其第一个引数。