我正在尝试通过解决一些玩具问题来理解Mathematica中的模式匹配思想。以下代码的行为与我的预期不符,我无法确定我的PatternTest理解有什么问题。
MatchQ[{2, 1, 2, 5}, {x__?(FromDigits[{#}] > 3 &), y__}]
我原以为这段代码可以检查列表{2,1,2,5}
是否可被写成两个连续(非空)序列,使得从第一个序列得到的整数大于3。因为 {Sequence[2,1],Sequence[2,5]}
是将列表重写成满足 FromDigits[{2,1}] > 3
的一种方法,所以我期望代码返回 True
。然而实际情况并非如此。
我的解析出了什么问题?