函数 Replace雉搽妤粲List , 该函数可以所有可能的方式应用一个规则或规则列表转换整个表达式 expr,并返回取得的结果列表. 或许你想这样做:
但是结果是 { } , 为什么呢? 因为 ReplaceList 是以所有可能的方式对整个表达式进行的替换, 而不是对表达式的某一部分.
更加有趣且强大的地方, 在于规则列表之中可以含有模式匹配. 比如下例中实现累加的例子.
有意思把?第一表达式为一个列表 {a,b,c,d,e,f,g} , 而要把 {h__,___} 替换为 一个 Plus 操作. {h__,___} 能不能匹配整个 {a,b,c,d,e,f,g} 表达式呢? 答案是肯定的.
下面如果好奇心再重一点的话, 我们将 h__ 改写成 h___ , 再次运行, 返回的结果稍稍不同.
这个结果的原因在于 Plus[ ] 就是 0 . 最后还要说一句累加函数, 在 Mathematica 下有相应的函数 Accumulate 效率非常高.