Vorrei estrarre argomenti da casi di disuguaglianza. Di seguito non funziona, qualche idea del perché e come risolverlo?Pattern matching Inequality
Inequality[1, Less, x, Less, 2] /. Inequality[a_, _, c_, _, e_] -> {a, c, e}
Vorrei estrarre argomenti da casi di disuguaglianza. Di seguito non funziona, qualche idea del perché e come risolverlo?Pattern matching Inequality
Inequality[1, Less, x, Less, 2] /. Inequality[a_, _, c_, _, e_] -> {a, c, e}
Inequality[1,Less,x,Less,2] /. HoldPattern[Inequality[a_,_,b_,_,c_]] -> {a, b, c}
Out: {1, x, 2}
Perché non si utilizza l'accesso standard alla sottoespressione?
expr = Disuguaglianza [1, Meno, x, Meno, 2]; {a, c, e} = {expr [[1]], expr [[3]], expr [[5]]};
Perché ho bisogno di sostituire tutte le disuguaglianze con uguaglianze in qualcosa di simile - http://pastebin.com/wN2ENmL6 –
Inoltre, si può fare questo:
disuguaglianza [1, Meno, x, Meno, 2] /. letterale @ disuguaglianza [a_, _, c_, _, e_] -> {a, c, e}
ADL
Mi chiedevo perché fosse necessario 'HoldPattern', e' Trace' rivela perché: 'Diseguaglianza [a _, _, b _, _, c_]' diventa 'Disuguaglianza [a_, _, c_] && Disuguaglianza [ c_, _, e_] '. Quindi, non corrisponde più a quello che ti aspetti. – rcollyer
@rcollyer Sì, viene valutato un modello. Prova questo esempio ** MatchQ [a/b, _/_] // Trace ** –
Questo mi farebbe impazzire per ore cercando di far funzionare quel modello. – rcollyer