Making a list of patterns of arbitrary length
$begingroup$
I would like to create a list of arbitrary length:
x1_, x2_, ...
Where each of the elements of the list has the full form:
Pattern[xi, Blank]
This answer shows how to create a list of symbols:
x1, x2, ...
but I don't know how to adapt that to obtain the above.
I intend to use this list in the definition of a function as in here.
list-manipulation functions pattern-matching
$endgroup$
add a comment |
$begingroup$
I would like to create a list of arbitrary length:
x1_, x2_, ...
Where each of the elements of the list has the full form:
Pattern[xi, Blank]
This answer shows how to create a list of symbols:
x1, x2, ...
but I don't know how to adapt that to obtain the above.
I intend to use this list in the definition of a function as in here.
list-manipulation functions pattern-matching
$endgroup$
add a comment |
$begingroup$
I would like to create a list of arbitrary length:
x1_, x2_, ...
Where each of the elements of the list has the full form:
Pattern[xi, Blank]
This answer shows how to create a list of symbols:
x1, x2, ...
but I don't know how to adapt that to obtain the above.
I intend to use this list in the definition of a function as in here.
list-manipulation functions pattern-matching
$endgroup$
I would like to create a list of arbitrary length:
x1_, x2_, ...
Where each of the elements of the list has the full form:
Pattern[xi, Blank]
This answer shows how to create a list of symbols:
x1, x2, ...
but I don't know how to adapt that to obtain the above.
I intend to use this list in the definition of a function as in here.
list-manipulation functions pattern-matching
list-manipulation functions pattern-matching
edited Aug 28 '18 at 2:18
m_goldberg
87.6k872198
87.6k872198
asked Aug 28 '18 at 0:45
WinkelriedWinkelried
1634
1634
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
$begingroup$
Array[ToExpression["x" <> ToString @ # <> "_"] &, 5]
x1_, x2_, x3_, x4_, x5_
FullForm @ %
List[Pattern[x1,Blank], Pattern[x2, Blank], Pattern[x3, Blank], Pattern[x4, Blank], Pattern[x5, Blank]]
Also
Thread[Pattern[Evaluate@Array[Symbol["x" <> ToString@#] &, 5], Blank]]
x1_, x2_, x3_, x4_, x5_
and
ToExpression[Table["x" <> i <> "_", i, ToString /@ Range[5]]]
x1_, x2_, x3_, x4_, x5_
$endgroup$
1
$begingroup$
The middle one will fail ifx1=1
.
$endgroup$
– Kuba♦
Aug 28 '18 at 7:37
$begingroup$
@Kuba, good point.
$endgroup$
– kglr
Aug 28 '18 at 8:09
add a comment |
$begingroup$
If you construct a list of strings instead, you can take advantage of the fact that ToExpression
is listable, and supports a 3rd argument that post-processes the output. For example:
ToExpression[
"x1", "x2", "x3",
StandardForm,
Pattern[#,Blank]&
]
x1_, x2_, x3_
Or, creating the list and converting:
ToExpression[
Table["x" <> ToString@i, i, 5],
StandardForm,
Pattern[#, Blank]&
]
x1_, x2_, x3_, x4_, x5_
$endgroup$
2
$begingroup$
It won't work ifx1 = 1
.
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
Function[sym,Pattern[sym,Blank],HoldFirst]
instead ofPattern[#,Blank]&
as usual.
$endgroup$
– Anton.Sakovich
Aug 28 '18 at 7:44
$begingroup$
@Kuba what exactly do you mean byx1 = 1
?
$endgroup$
– Winkelried
Aug 28 '18 at 8:57
$begingroup$
@Winkelried if any ofxi
have values prior to that evaluation then you will get e.g.Pattern[1, Blank]
$endgroup$
– Kuba♦
Aug 28 '18 at 8:58
add a comment |
$begingroup$
Nothing new but shorter:
StringTemplate["x``_"] /@ Range[10] // ToExpression
x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_
$endgroup$
add a comment |
$begingroup$
Here is an example of how to make the solution in the link work for this case:
patt = Table[
With[
s = Symbol["x" <> ToString[i]],
Pattern[s, Blank]
], i, 10];
Range[10] /. patt :> x5, x8
5, 8
Using With
here is a trick to insert the symbol into Pattern
. Since Pattern
has the attribute HoldFirst
, it would not work to write e.g.
Pattern[Symbol["x" <> ToString[i]], Blank]
because Symbol["x" <> ToString[i]]
would not be evaluated before it was passed to Pattern
, i.e. Pattern
would not receive a string as is required.
$endgroup$
$begingroup$
It won't work ifx1 = 1
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
@Kuba You mean if the symbols have values?
$endgroup$
– C. E.
Aug 28 '18 at 9:48
$begingroup$
Yes, sorry for not being clear.
$endgroup$
– Kuba♦
Aug 28 '18 at 9:54
$begingroup$
@Kuba Well, you are right. I wanted to show how to adapt the answer OP linked to, but it has this flaw.
$endgroup$
– C. E.
Aug 28 '18 at 10:40
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
);
);
, "mathjax-editing");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "387"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f180763%2fmaking-a-list-of-patterns-of-arbitrary-length%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Array[ToExpression["x" <> ToString @ # <> "_"] &, 5]
x1_, x2_, x3_, x4_, x5_
FullForm @ %
List[Pattern[x1,Blank], Pattern[x2, Blank], Pattern[x3, Blank], Pattern[x4, Blank], Pattern[x5, Blank]]
Also
Thread[Pattern[Evaluate@Array[Symbol["x" <> ToString@#] &, 5], Blank]]
x1_, x2_, x3_, x4_, x5_
and
ToExpression[Table["x" <> i <> "_", i, ToString /@ Range[5]]]
x1_, x2_, x3_, x4_, x5_
$endgroup$
1
$begingroup$
The middle one will fail ifx1=1
.
$endgroup$
– Kuba♦
Aug 28 '18 at 7:37
$begingroup$
@Kuba, good point.
$endgroup$
– kglr
Aug 28 '18 at 8:09
add a comment |
$begingroup$
Array[ToExpression["x" <> ToString @ # <> "_"] &, 5]
x1_, x2_, x3_, x4_, x5_
FullForm @ %
List[Pattern[x1,Blank], Pattern[x2, Blank], Pattern[x3, Blank], Pattern[x4, Blank], Pattern[x5, Blank]]
Also
Thread[Pattern[Evaluate@Array[Symbol["x" <> ToString@#] &, 5], Blank]]
x1_, x2_, x3_, x4_, x5_
and
ToExpression[Table["x" <> i <> "_", i, ToString /@ Range[5]]]
x1_, x2_, x3_, x4_, x5_
$endgroup$
1
$begingroup$
The middle one will fail ifx1=1
.
$endgroup$
– Kuba♦
Aug 28 '18 at 7:37
$begingroup$
@Kuba, good point.
$endgroup$
– kglr
Aug 28 '18 at 8:09
add a comment |
$begingroup$
Array[ToExpression["x" <> ToString @ # <> "_"] &, 5]
x1_, x2_, x3_, x4_, x5_
FullForm @ %
List[Pattern[x1,Blank], Pattern[x2, Blank], Pattern[x3, Blank], Pattern[x4, Blank], Pattern[x5, Blank]]
Also
Thread[Pattern[Evaluate@Array[Symbol["x" <> ToString@#] &, 5], Blank]]
x1_, x2_, x3_, x4_, x5_
and
ToExpression[Table["x" <> i <> "_", i, ToString /@ Range[5]]]
x1_, x2_, x3_, x4_, x5_
$endgroup$
Array[ToExpression["x" <> ToString @ # <> "_"] &, 5]
x1_, x2_, x3_, x4_, x5_
FullForm @ %
List[Pattern[x1,Blank], Pattern[x2, Blank], Pattern[x3, Blank], Pattern[x4, Blank], Pattern[x5, Blank]]
Also
Thread[Pattern[Evaluate@Array[Symbol["x" <> ToString@#] &, 5], Blank]]
x1_, x2_, x3_, x4_, x5_
and
ToExpression[Table["x" <> i <> "_", i, ToString /@ Range[5]]]
x1_, x2_, x3_, x4_, x5_
edited Aug 28 '18 at 4:10
answered Aug 28 '18 at 1:54
kglrkglr
189k10205423
189k10205423
1
$begingroup$
The middle one will fail ifx1=1
.
$endgroup$
– Kuba♦
Aug 28 '18 at 7:37
$begingroup$
@Kuba, good point.
$endgroup$
– kglr
Aug 28 '18 at 8:09
add a comment |
1
$begingroup$
The middle one will fail ifx1=1
.
$endgroup$
– Kuba♦
Aug 28 '18 at 7:37
$begingroup$
@Kuba, good point.
$endgroup$
– kglr
Aug 28 '18 at 8:09
1
1
$begingroup$
The middle one will fail if
x1=1
.$endgroup$
– Kuba♦
Aug 28 '18 at 7:37
$begingroup$
The middle one will fail if
x1=1
.$endgroup$
– Kuba♦
Aug 28 '18 at 7:37
$begingroup$
@Kuba, good point.
$endgroup$
– kglr
Aug 28 '18 at 8:09
$begingroup$
@Kuba, good point.
$endgroup$
– kglr
Aug 28 '18 at 8:09
add a comment |
$begingroup$
If you construct a list of strings instead, you can take advantage of the fact that ToExpression
is listable, and supports a 3rd argument that post-processes the output. For example:
ToExpression[
"x1", "x2", "x3",
StandardForm,
Pattern[#,Blank]&
]
x1_, x2_, x3_
Or, creating the list and converting:
ToExpression[
Table["x" <> ToString@i, i, 5],
StandardForm,
Pattern[#, Blank]&
]
x1_, x2_, x3_, x4_, x5_
$endgroup$
2
$begingroup$
It won't work ifx1 = 1
.
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
Function[sym,Pattern[sym,Blank],HoldFirst]
instead ofPattern[#,Blank]&
as usual.
$endgroup$
– Anton.Sakovich
Aug 28 '18 at 7:44
$begingroup$
@Kuba what exactly do you mean byx1 = 1
?
$endgroup$
– Winkelried
Aug 28 '18 at 8:57
$begingroup$
@Winkelried if any ofxi
have values prior to that evaluation then you will get e.g.Pattern[1, Blank]
$endgroup$
– Kuba♦
Aug 28 '18 at 8:58
add a comment |
$begingroup$
If you construct a list of strings instead, you can take advantage of the fact that ToExpression
is listable, and supports a 3rd argument that post-processes the output. For example:
ToExpression[
"x1", "x2", "x3",
StandardForm,
Pattern[#,Blank]&
]
x1_, x2_, x3_
Or, creating the list and converting:
ToExpression[
Table["x" <> ToString@i, i, 5],
StandardForm,
Pattern[#, Blank]&
]
x1_, x2_, x3_, x4_, x5_
$endgroup$
2
$begingroup$
It won't work ifx1 = 1
.
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
Function[sym,Pattern[sym,Blank],HoldFirst]
instead ofPattern[#,Blank]&
as usual.
$endgroup$
– Anton.Sakovich
Aug 28 '18 at 7:44
$begingroup$
@Kuba what exactly do you mean byx1 = 1
?
$endgroup$
– Winkelried
Aug 28 '18 at 8:57
$begingroup$
@Winkelried if any ofxi
have values prior to that evaluation then you will get e.g.Pattern[1, Blank]
$endgroup$
– Kuba♦
Aug 28 '18 at 8:58
add a comment |
$begingroup$
If you construct a list of strings instead, you can take advantage of the fact that ToExpression
is listable, and supports a 3rd argument that post-processes the output. For example:
ToExpression[
"x1", "x2", "x3",
StandardForm,
Pattern[#,Blank]&
]
x1_, x2_, x3_
Or, creating the list and converting:
ToExpression[
Table["x" <> ToString@i, i, 5],
StandardForm,
Pattern[#, Blank]&
]
x1_, x2_, x3_, x4_, x5_
$endgroup$
If you construct a list of strings instead, you can take advantage of the fact that ToExpression
is listable, and supports a 3rd argument that post-processes the output. For example:
ToExpression[
"x1", "x2", "x3",
StandardForm,
Pattern[#,Blank]&
]
x1_, x2_, x3_
Or, creating the list and converting:
ToExpression[
Table["x" <> ToString@i, i, 5],
StandardForm,
Pattern[#, Blank]&
]
x1_, x2_, x3_, x4_, x5_
answered Aug 28 '18 at 1:31
Carl WollCarl Woll
70.5k394184
70.5k394184
2
$begingroup$
It won't work ifx1 = 1
.
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
Function[sym,Pattern[sym,Blank],HoldFirst]
instead ofPattern[#,Blank]&
as usual.
$endgroup$
– Anton.Sakovich
Aug 28 '18 at 7:44
$begingroup$
@Kuba what exactly do you mean byx1 = 1
?
$endgroup$
– Winkelried
Aug 28 '18 at 8:57
$begingroup$
@Winkelried if any ofxi
have values prior to that evaluation then you will get e.g.Pattern[1, Blank]
$endgroup$
– Kuba♦
Aug 28 '18 at 8:58
add a comment |
2
$begingroup$
It won't work ifx1 = 1
.
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
Function[sym,Pattern[sym,Blank],HoldFirst]
instead ofPattern[#,Blank]&
as usual.
$endgroup$
– Anton.Sakovich
Aug 28 '18 at 7:44
$begingroup$
@Kuba what exactly do you mean byx1 = 1
?
$endgroup$
– Winkelried
Aug 28 '18 at 8:57
$begingroup$
@Winkelried if any ofxi
have values prior to that evaluation then you will get e.g.Pattern[1, Blank]
$endgroup$
– Kuba♦
Aug 28 '18 at 8:58
2
2
$begingroup$
It won't work if
x1 = 1
.$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
It won't work if
x1 = 1
.$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
Function[sym,Pattern[sym,Blank],HoldFirst]
instead of Pattern[#,Blank]&
as usual.$endgroup$
– Anton.Sakovich
Aug 28 '18 at 7:44
$begingroup$
Function[sym,Pattern[sym,Blank],HoldFirst]
instead of Pattern[#,Blank]&
as usual.$endgroup$
– Anton.Sakovich
Aug 28 '18 at 7:44
$begingroup$
@Kuba what exactly do you mean by
x1 = 1
?$endgroup$
– Winkelried
Aug 28 '18 at 8:57
$begingroup$
@Kuba what exactly do you mean by
x1 = 1
?$endgroup$
– Winkelried
Aug 28 '18 at 8:57
$begingroup$
@Winkelried if any of
xi
have values prior to that evaluation then you will get e.g. Pattern[1, Blank]
$endgroup$
– Kuba♦
Aug 28 '18 at 8:58
$begingroup$
@Winkelried if any of
xi
have values prior to that evaluation then you will get e.g. Pattern[1, Blank]
$endgroup$
– Kuba♦
Aug 28 '18 at 8:58
add a comment |
$begingroup$
Nothing new but shorter:
StringTemplate["x``_"] /@ Range[10] // ToExpression
x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_
$endgroup$
add a comment |
$begingroup$
Nothing new but shorter:
StringTemplate["x``_"] /@ Range[10] // ToExpression
x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_
$endgroup$
add a comment |
$begingroup$
Nothing new but shorter:
StringTemplate["x``_"] /@ Range[10] // ToExpression
x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_
$endgroup$
Nothing new but shorter:
StringTemplate["x``_"] /@ Range[10] // ToExpression
x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_
answered Aug 28 '18 at 7:38
Kuba♦Kuba
106k12207529
106k12207529
add a comment |
add a comment |
$begingroup$
Here is an example of how to make the solution in the link work for this case:
patt = Table[
With[
s = Symbol["x" <> ToString[i]],
Pattern[s, Blank]
], i, 10];
Range[10] /. patt :> x5, x8
5, 8
Using With
here is a trick to insert the symbol into Pattern
. Since Pattern
has the attribute HoldFirst
, it would not work to write e.g.
Pattern[Symbol["x" <> ToString[i]], Blank]
because Symbol["x" <> ToString[i]]
would not be evaluated before it was passed to Pattern
, i.e. Pattern
would not receive a string as is required.
$endgroup$
$begingroup$
It won't work ifx1 = 1
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
@Kuba You mean if the symbols have values?
$endgroup$
– C. E.
Aug 28 '18 at 9:48
$begingroup$
Yes, sorry for not being clear.
$endgroup$
– Kuba♦
Aug 28 '18 at 9:54
$begingroup$
@Kuba Well, you are right. I wanted to show how to adapt the answer OP linked to, but it has this flaw.
$endgroup$
– C. E.
Aug 28 '18 at 10:40
add a comment |
$begingroup$
Here is an example of how to make the solution in the link work for this case:
patt = Table[
With[
s = Symbol["x" <> ToString[i]],
Pattern[s, Blank]
], i, 10];
Range[10] /. patt :> x5, x8
5, 8
Using With
here is a trick to insert the symbol into Pattern
. Since Pattern
has the attribute HoldFirst
, it would not work to write e.g.
Pattern[Symbol["x" <> ToString[i]], Blank]
because Symbol["x" <> ToString[i]]
would not be evaluated before it was passed to Pattern
, i.e. Pattern
would not receive a string as is required.
$endgroup$
$begingroup$
It won't work ifx1 = 1
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
@Kuba You mean if the symbols have values?
$endgroup$
– C. E.
Aug 28 '18 at 9:48
$begingroup$
Yes, sorry for not being clear.
$endgroup$
– Kuba♦
Aug 28 '18 at 9:54
$begingroup$
@Kuba Well, you are right. I wanted to show how to adapt the answer OP linked to, but it has this flaw.
$endgroup$
– C. E.
Aug 28 '18 at 10:40
add a comment |
$begingroup$
Here is an example of how to make the solution in the link work for this case:
patt = Table[
With[
s = Symbol["x" <> ToString[i]],
Pattern[s, Blank]
], i, 10];
Range[10] /. patt :> x5, x8
5, 8
Using With
here is a trick to insert the symbol into Pattern
. Since Pattern
has the attribute HoldFirst
, it would not work to write e.g.
Pattern[Symbol["x" <> ToString[i]], Blank]
because Symbol["x" <> ToString[i]]
would not be evaluated before it was passed to Pattern
, i.e. Pattern
would not receive a string as is required.
$endgroup$
Here is an example of how to make the solution in the link work for this case:
patt = Table[
With[
s = Symbol["x" <> ToString[i]],
Pattern[s, Blank]
], i, 10];
Range[10] /. patt :> x5, x8
5, 8
Using With
here is a trick to insert the symbol into Pattern
. Since Pattern
has the attribute HoldFirst
, it would not work to write e.g.
Pattern[Symbol["x" <> ToString[i]], Blank]
because Symbol["x" <> ToString[i]]
would not be evaluated before it was passed to Pattern
, i.e. Pattern
would not receive a string as is required.
edited Aug 28 '18 at 9:49
answered Aug 28 '18 at 1:19
C. E.C. E.
50.8k399205
50.8k399205
$begingroup$
It won't work ifx1 = 1
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
@Kuba You mean if the symbols have values?
$endgroup$
– C. E.
Aug 28 '18 at 9:48
$begingroup$
Yes, sorry for not being clear.
$endgroup$
– Kuba♦
Aug 28 '18 at 9:54
$begingroup$
@Kuba Well, you are right. I wanted to show how to adapt the answer OP linked to, but it has this flaw.
$endgroup$
– C. E.
Aug 28 '18 at 10:40
add a comment |
$begingroup$
It won't work ifx1 = 1
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
@Kuba You mean if the symbols have values?
$endgroup$
– C. E.
Aug 28 '18 at 9:48
$begingroup$
Yes, sorry for not being clear.
$endgroup$
– Kuba♦
Aug 28 '18 at 9:54
$begingroup$
@Kuba Well, you are right. I wanted to show how to adapt the answer OP linked to, but it has this flaw.
$endgroup$
– C. E.
Aug 28 '18 at 10:40
$begingroup$
It won't work if
x1 = 1
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
It won't work if
x1 = 1
$endgroup$
– Kuba♦
Aug 28 '18 at 7:36
$begingroup$
@Kuba You mean if the symbols have values?
$endgroup$
– C. E.
Aug 28 '18 at 9:48
$begingroup$
@Kuba You mean if the symbols have values?
$endgroup$
– C. E.
Aug 28 '18 at 9:48
$begingroup$
Yes, sorry for not being clear.
$endgroup$
– Kuba♦
Aug 28 '18 at 9:54
$begingroup$
Yes, sorry for not being clear.
$endgroup$
– Kuba♦
Aug 28 '18 at 9:54
$begingroup$
@Kuba Well, you are right. I wanted to show how to adapt the answer OP linked to, but it has this flaw.
$endgroup$
– C. E.
Aug 28 '18 at 10:40
$begingroup$
@Kuba Well, you are right. I wanted to show how to adapt the answer OP linked to, but it has this flaw.
$endgroup$
– C. E.
Aug 28 '18 at 10:40
add a comment |
Thanks for contributing an answer to Mathematica Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f180763%2fmaking-a-list-of-patterns-of-arbitrary-length%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown