I have an expr
which has List
at various levels and I want to display them nicely as a column inside a frame but my problem is that the search for List
goes inside things like DateObject
to ruin their structure.
Replace[
expr,
x_List/;!MatchQ[...[...x...],DateObject[x,__]]:>Framed[Column@x]
All
]
So how should I define such a Rule
?
Sample expr
:
{1->a,2->b,3->c,4->{5->d,6->e,7->Today},8->Yesterday,9->{10->f,11->{12->Tomorrow,13->g}}}
Current output:
Framed[Column[{1 -> a, 2 -> b, 3 -> c, 4 -> Framed[Column[{5 -> d, 6 -> e, 7 -> DateObject[Framed[Column[{2020, 1, 28}]], "Day", CalendarType -> "Gregorian", DateFormat -> Automatic]}]],
8 -> DateObject[Framed[Column[{2020, 1, 27}]], "Day", CalendarType -> "Gregorian", DateFormat -> Automatic],
9 -> Framed[Column[{10 -> f, 11 -> Framed[Column[{12 -> DateObject[Framed[Column[{2020, 1, 29}]], "Day", CalendarType -> "Gregorian", DateFormat -> Automatic], 13 -> g}]]}]]}]]
Desired output:
Framed[Column[{1 -> a, 2 -> b, 3 -> c, 4 -> Framed[Column[{5 -> d, 6 -> e, 7 -> DateObject[{2020, 1, 28}, "Day", CalendarType -> "Gregorian", DateFormat -> Automatic]}]],
8 -> DateObject[{2020, 1, 27}, "Day", CalendarType -> "Gregorian", DateFormat -> Automatic],
9 -> Framed[Column[{10 -> f, 11 -> Framed[Column[{12 -> DateObject[{2020, 1, 29}, "Day", CalendarType -> "Gregorian", DateFormat -> Automatic], 13 -> g}]]}]]}]]
expr
? It's hard to provide help if other people don't have anything they can evaluate. $\endgroup$expr
added. $\endgroup$List
as aHead
and then put those in a column? Or are you trying to extract just the rules at level 1, or what? Can you give a (rough) example of your desired output? $\endgroup$