Sto lavorando su problemi di giocattoli per aiutarmi ad assimilare l'idea di abbinamento di modelli in Mathematica. Il seguente codice non si comporta come mi aspettavo, e non sono riuscito a capire cosa c'è di sbagliato nella mia comprensione di PatternTest.Un comportamento imprevisto di PatternTest in Mathematica
MatchQ[{2, 1, 2, 5}, {x__?(FromDigits[{#}] > 3 &), y__}]
ho previsto questo pezzo di codice per verificare se la lista {2,1,2,5}
può essere scritto come due consecutivi (non vuoto) sequenze tale che l'intero otteniamo dalla prima sequenza è maggiore di 3. Poiché {Sequence[2,1],Sequence[2,5]}
è uno modo per riscrivere l'elenco tale che detiene FromDigits[{2,1}] > 3
, mi aspettavo che il codice restituisca il valore True
. Tuttavia, questo non è il caso.
Cosa c'è di sbagliato nella mia interpretazione del codice?
Che è stato veloce reale! +1 –
@Leonid: Il potere della procrastinazione non conosce limiti! – Simon
Penso che la risposta sia stata scritta più velocemente di quanto ho messo insieme un commento, all'incirca nello stesso momento. –