Questions on expression testing and manipulation through pattern matching and constructing efficient patterns.
6
votes
3answers
284 views
Specifying string patterns in DeleteCases
It seems that DeleteCases is not compatible with string patterns, at least directly (see, for example, this question). Is this true? If so, why is this the case? ...
10
votes
4answers
256 views
How to use pattern matching to assign values to Subscript[f,x_]?
I want to define two subscripted functions Subscript[f,1] and Subscript[f,2]. To keep the assignments local, I would like to ...
1
vote
2answers
125 views
Using patterns in ReplaceAll to extract elements from tuples at arbitrary depths
Please consider the following:
I need to extract from MyList all last parts of each 3-tuple.
...
11
votes
4answers
297 views
Assessing argument type in set delayed function definitions
I'm wondering how to properly assess the type of arguments passed to functions defined with :=. I want my functions to be the most efficient, unambiguous and clear ...
12
votes
4answers
242 views
The gap between MapAt and ReplacePart for 2D data tables with headers
Consider a relational table derived from survey data, where each column ("001-01" ...) represents a responder and each row (...
4
votes
1answer
253 views
Path queries for tree-structured data
Can anyone suggest documentation or tutorials for developing path queries and indices for (XML-like) tree-structured data?
Suppose data is organized hierarchically in key->value pairs, eg:
...
5
votes
2answers
166 views
Delete contexts from a string representation of a symbol
I want to delete the string representing the context of a symbol.
For info I need such a functionality in my ShowIt function defined here
I'd like to know how I ...
4
votes
3answers
178 views
position of sequence of elements in list [duplicate]
Possible Duplicate:
Finding a subsequence in a list
Question
The position of {3, 5} is the list
{1, 3, 4, 3, 5, 5, 1}
is 3. How can such a position ...
31
votes
4answers
834 views
Using a PatternTest versus a Condition for pattern matching
My last question to the site resulted in several answers that involve using pattern matching in Mathematica, a feature I wasn't very familiar with at the time. I am currently reading Mathematica ...
7
votes
1answer
149 views
Built in way to de-list singletons?
Is there a built in method to de-list singleton expressions, like this rule-based solution:
expr_ :> If[Length[expr] == 1, First@expr, expr]
In data ...
5
votes
3answers
204 views
Find subexpression to minimize leafcount after replacment with temporary variable
Given an expression expr, is there an automated way to find a subexpression subexpr such that replacing ...
22
votes
0answers
313 views
How is pattern specificity decided?
Mathematica has a notion of pattern specificity, which is a partial ordering on patterns.
The rules (e.g. DownValues, ...
7
votes
2answers
229 views
Building a tree
Given a list of word characters, such as this one, I'd like to build a tree, similar to this makeTree function, but with the tree in a different format. So, for an input such as
...
12
votes
2answers
246 views
How can I separate a separable function
I have a separable function $f[x,y]$, and I would like to find two functions $g[x]$ and $h[y]$ with
$f[x,y]=g[x] h[y]$
where $g[x]$ doesn't depend on $y$ and $h[y]$ doesn't depend on $x$. Ideally, ...
14
votes
2answers
291 views
Successful match in Replace but not in Cases?
I have a little example that exhibits a successful pattern match in ReplaceAll that Cases misses and I wonder if the assembled ...
4
votes
4answers
299 views
Creating lists from a string, separating words from numbers
Say I have a string that contains numbers and words, such as this one:
string = "there are 1234 words and numbers 5678 in here $999";
How would I separate the ...
9
votes
1answer
154 views
Selectively clear DownValues
How can I clear a subset of a symbol's DownValues ?
For example, suppose I have created some DownValues for $f$ like this:
...
11
votes
3answers
241 views
Returning an unevaluated expression with values substituted in
Let's say I have a function
formula[x_List] := (x[[1]] - x[[2]]) + (x[[3]] - x[[4]]);
and I want to pass it a variable and get back the unevaluated formula with ...
36
votes
1answer
922 views
How to generally match, unify and merge patterns?
This question was split from this one. While that question is now about how to match two particular patterns (mostly using Verbatim or ...
3
votes
1answer
108 views
Pattern matching a multivariate derivative
I can extract the parameters of a single variable derivative with the rule
D[f[x], x] /. Derivative[order_][fcn_][variable_] ->
{order, fcn, variable}
...
3
votes
2answers
167 views
Highlighting text with StringReplacePart but also using Style, Subscript
For a Natural Language Processing analysis task it's desirable to highlight a text string programmatically according to XML tags that reference specific words or phrases.
The XML tags specify the ...
8
votes
1answer
162 views
Mixing patterns with string patterns
I have imported an XML document into Mathematica. It is now represented as Symbolic XML expression in the variable xml:
...
5
votes
2answers
154 views
Pattern matching deletion of list items [duplicate]
Possible Duplicate:
How can I remove B -> A from a list if A -> B is in the list?
I'm working toward building a graph and use some code to construct my rules which results in a form ...
11
votes
2answers
182 views
2
votes
2answers
181 views
Pattern test for variables during function definition
I am having a problem with pattern testing on variables during function definition
...
2
votes
2answers
144 views
Formatting text through pattern matching
I am trying to format some text based on some patterns.
...
9
votes
4answers
241 views
Calling Table with custom iterator
I often find myself in situations where I, for example, need to build a table for some expression, but want to set the number of points rather then the step size, so the code ends up looking like this
...
15
votes
4answers
346 views
Splitting a list
Please consider the following list:
data={1, 0, 0, 0, 2, 5, 2, 3, 0, 0, 3};
Now I would like to split the list into 0-sequences and Not-0-sequences as following:
...
5
votes
5answers
235 views
How can I use nested conditionals inside my functions?
I'm a big fan of using conditionals inside my functions to deal with cases, that is, to pattern match in stages and possibly leave a function unevaluated.
...
16
votes
1answer
335 views
NotebookFind and String Pattern Expressions
Is there a way that NotebookFind can be used to match string pattern expressions rather than just strings?
The documentation for ...
4
votes
1answer
133 views
Searching Notebooks for String Patterns using Workbench v2
The Workbench webpage describing new features in version 2 lists the ability to "Search notebook documents with the Mathematica pattern search utility" under the heading Mathematica Front End ...
7
votes
3answers
172 views
Pattern matching Q for rectangular data matrices
Given a List of rectangular nx3 arrays of data, each of the form {...,{x,y,z},...}, (the ellipses are not Mathematica pattern syntax, just for illustration). Some members of this list may be - by ...
3
votes
1answer
110 views
Set promotes Rule to RuleDelayed?
In mentally building a model of how Mathematica works, I naively expected Set to create a Rule in a symbol's ...
12
votes
2answers
230 views
Split a Unicode string maintaining uppercase characters
I want to split a string according to a predefined set of substrings (lowercase), though the actual text can contain uppercase characters anyplace. The task is to find the matches, longer preferred ...
14
votes
2answers
411 views
Pattern issues weird warning
Take for example
head[b_[PatternSequence[_, _]]] := 9
I know this example serves no purpose as is. It also happens in useful examples such as
...
6
votes
1answer
189 views
Creating a version of SequenceAlignment that accepts patterns
SequenceAlignment seems like a function that is not (yet?) fully integrated into Mathematica. I want a function that accepts general patterns instead.
I ...
14
votes
3answers
213 views
What's wrong with this pattern of the form Except[Repeated[…]]?
I'm trying to build a head that recognizes molecules. Here's the code
...
11
votes
3answers
288 views
Delete duplicates in a list, depending on the sequence of numbers
Below, list is a representative sample of my list, which contains lists of integers. I would like to be able to input:
...
2
votes
2answers
76 views
Using FreeQ with implicit functions
In Mathematica 7, I want to determine whether a list of free of numbers greater than 1 or not. It seems like using FreeQ would be a concise way to do this:
...
0
votes
1answer
230 views
What does the slash-colon symbol do?
I came across a bit of code that uses the syntax /: and I don't know what it does. I can't find its documentation, or maybe I'm just not looking properly. The code ...
16
votes
6answers
535 views
Split a string at specific positions
Given a string of alphanumerical characters, how to split it simply and quickly at the center of continuous letter-substrings? Is there an elegant and fast solutions out there in the "computational ...
8
votes
1answer
219 views
Does Mathematica use first order or second order order unification?
When Mathematica is pattern-matching expressions, does it use first order or second order unification.
Just to clarify the difference between first order and second order unification:
In Second order ...
8
votes
1answer
158 views
MatchQ and patterns for similar lists
I can't seem to find the right set of patterns to independently match two different lists. Simplified versions of the lists are as follows:
...
8
votes
1answer
285 views
Why does Mathematica choose the second function definition?
While working on a solution to this question I've come across a case where I simply don't understand Mathematica's behaviour.
I've got the following definitions:
...
9
votes
6answers
235 views
How can I mix the behaviors of StringReplace and ReplaceAll in a single rule?
I'm trying to take a list of the form { {"65 + 3 months", 75}, {"65 + 4 months", 75.1} }, and transform the string part to a number such as 65.25 or 65.333, ...
9
votes
3answers
195 views
Splitting a list in which figures vary from negative to positive
Consider the following list:
data={4078, 256, -1266, -388, 1290, 1368, 1446, 1524, 2};
I would like to split any kind of such list always, when figures turn form ...
8
votes
2answers
167 views
Why doesn't Cases match all instances of XMLElement, given Infinity levelspec?
Why doesn't Cases match all instances of XMLElement, given Infinity levelspec?
...
4
votes
1answer
77 views
How do you set an Optional parameter with a global variable on a Function defined in a Package
In a Package I am writing, I'm trying to define a function with an Optional parameter in it that is set to a global variable.
...
6
votes
4answers
194 views
How to match a sequence of complex patterns?
I have list with the form {{a1,b1}->{x1,y1},{a2,b2}->{x1,y2},...} where the {ai,bi}'s can be ...
4
votes
1answer
185 views



