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