将未评估的表达式列表折叠为单个表达式

时间:2015-10-31 01:44:34

标签: r metaprogramming

拥有以下未评估表达式列表。

l = list(quote(f()),quote(g()),quote(h()))
str(l)
#List of 3
# $ : language f()
# $ : language g()
# $ : language h()

我想使用&函数折叠列表,这样我就会得到r个结果。

r = quote(f() & g() & h())
str(r)
# language f() & g() & h()

当然,重点是处理任何长度的列表。

1 个答案:

答案 0 :(得分:4)

您可以使用Reduce

Reduce(function(a,b) bquote(.(a) & .(b)), l)