Неожиданное поведение PatternTest в Mathematica

Я работаю над игрушечными задачами, чтобы помочь мне усвоить идею сопоставления с образцом в 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 . Однако это не так.

Что не так с моей интерпретацией кода?

12
задан Michael Wijaya 11 December 2011 в 22:37
поделиться