AnyOrder[p1,p2,…]
是一个属于语法规则的模式对象,它表示以任意顺序匹配 p1, p2, … 的一列元素.
AnyOrder
AnyOrder[p1,p2,…]
是一个属于语法规则的模式对象,它表示以任意顺序匹配 p1, p2, … 的一列元素.
更多信息
- AnyOrder 出现在 GrammarRules 和 StringExpression 对象内部.
- AnyOrder 可以和 FixedOrder、Alternatives 及其它语法规则模式内外互相嵌套.
范例
打开所有单元 关闭所有单元基本范例 (2)
StringCases["abc123 456def", AnyOrder[LetterCharacter.., DigitCharacter..]]grammar = CloudDeploy[
GrammarRules[{
AnyOrder[
FixedOrder["from", from : GrammarToken["City"]],
FixedOrder["to", to : GrammarToken["Ocean"]]
] :> from -> to
}]
]GrammarApply[grammar, "to the Pacific from Boston"]应用 (1)
部署一个简单计算器,支持中缀表示法、波兰表示法和逆波兰表示法:
calc = CloudDeploy[
GrammarRules[{GrammarToken["Math"]}, {
"Math" -> GrammarToken["Number"],
"Math" -> AnyOrder[a : GrammarToken["Math"], "+", b : GrammarToken["Math"]] :> a + b,
"Math" -> AnyOrder[a : GrammarToken["Math"], "-", b : GrammarToken["Math"]] :> a - b,
"Math" -> AnyOrder[a : GrammarToken["Math"], "*", b : GrammarToken["Math"]] :> a * b,
"Math" -> AnyOrder[a : GrammarToken["Math"], "/", b : GrammarToken["Math"]] :> a / b
}]
]GrammarApply[calc, "2+3"]GrammarApply[calc, "+ 2 3"]GrammarApply[calc, "2 3 +"]GrammarApply[calc, "2 3 + * 5"]GrammarApply[calc, "2 + 3 * 5", AmbiguityFunction -> All]属性和关系 (1)
在语法中,FixedOrder 需要指定的顺序而 AnyOrder 支持任意顺序:
grammar = CloudDeploy[
GrammarRules[{
a : FixedOrder["1", "2", "3", "4"] :> {"FixedOrder", a},
a : AnyOrder["1", "2", "3", "4"] :> {"AnyOrder", a}
}]
]这里的输入匹配 FixedOrder 中的顺序:
GrammarApply[grammar, "1 2 3 4", AmbiguityFunction -> All]下列输入不匹配 FixedOrder 中的顺序:
GrammarApply[grammar, "4 3 2 1", AmbiguityFunction -> All]相关指南
-
▪
- 可编程语言接口
文本
Wolfram Research (2015),AnyOrder,Wolfram 语言函数,https://reference.wolfram.com/language/ref/AnyOrder.html.
CMS
Wolfram 语言. 2015. "AnyOrder." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/AnyOrder.html.
APA
Wolfram 语言. (2015). AnyOrder. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/AnyOrder.html 年
BibTeX
@misc{reference.wolfram_2026_anyorder, author="Wolfram Research", title="{AnyOrder}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/AnyOrder.html}", note=[Accessed: 10-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_anyorder, organization={Wolfram Research}, title={AnyOrder}, year={2015}, url={https://reference.wolfram.com/language/ref/AnyOrder.html}, note=[Accessed: 10-September-2026]}