Replacing loop with functional styleFunctional style using lazy lists?Can this code be written in a more functional styleProgramming a numerical method in the functional styleGoing full functional (Haskell style)Replace For-loop with functional codeReplacing a for-loop with something functionalElegant functional equivalent to a nested loop?Delimited Continuations: Easy? or Fundamentally Difficult?RealDigits and functional styleReplacing procedural code with functional code
This LM317 diagram doesn't make any sense to me
Old story about earthman travelling Martian canal by boat
What was the nature of the known bugs in the Space Shuttle software?
Examples of fluid (including air) being used to transmit digital data?
What does the multimeter dial do internally?
What's the difference between a type and a kind?
3-way switches no longer serving their purpose
How do I talk to my wife about unrealistic expectations?
Was it ever illegal to name a pig "Napoleon" in France?
Is it possible for a character at any level to cast all 44 Cantrips in one week without Magic Items?
QR codes, do people use them?
What purpose does mercury dichloride have in fireworks?
Who goes first? Person disembarking bus or the bicycle?
How to reclaim personal item I've lent to the office without burning bridges?
Array or vector? Two dimensional array or matrix?
How to say "is going" in Russian in "this game is going to perish"
Calculate the largest palindromic number from the product of two 6-digit numbers (100000 to 999999)
How do I explain that I don't want to maintain old projects?
Was the 45.9°C temperature in France in June 2019 the highest ever recorded in France?
Did William Shakespeare hide things in his writings?
What happens if a short can't be covered?
How can I use my cell phone's light as a reading light?
How to have a filled pattern
Replacing loop with functional style
Replacing loop with functional style
Functional style using lazy lists?Can this code be written in a more functional styleProgramming a numerical method in the functional styleGoing full functional (Haskell style)Replace For-loop with functional codeReplacing a for-loop with something functionalElegant functional equivalent to a nested loop?Delimited Continuations: Easy? or Fundamentally Difficult?RealDigits and functional styleReplacing procedural code with functional code
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
I keep hearing that one should avoid loops in Mathematica and try to write everything in functional style. I've seen few examples of how this done on here, but I could't apply to my problem successfully. It would be great to pick up new ideas of doing it.
Some data for consistency:
X = 1, 2, 3, 4;
History = 1;
SomeVals = ;
SomeFunction[x_, y_] := x, x + y;
I'm trying to rewrite the following loop into functional style:
For[i = 1, i <= Length@X, i++,
val, History = SomeFunction[X[[i]]^2, History];
AppendTo[SomeVals, val];
]
functions functional-style
$endgroup$
add a comment |
$begingroup$
I keep hearing that one should avoid loops in Mathematica and try to write everything in functional style. I've seen few examples of how this done on here, but I could't apply to my problem successfully. It would be great to pick up new ideas of doing it.
Some data for consistency:
X = 1, 2, 3, 4;
History = 1;
SomeVals = ;
SomeFunction[x_, y_] := x, x + y;
I'm trying to rewrite the following loop into functional style:
For[i = 1, i <= Length@X, i++,
val, History = SomeFunction[X[[i]]^2, History];
AppendTo[SomeVals, val];
]
functions functional-style
$endgroup$
$begingroup$
I'm confused about what you're trying to do. Particularly, I don't understand what you intended History to be used for. The output of SomeVals appears to be 1,4,9,16, which is simply the square of the elements in X. That's trivial to implement (X^2), but I don't think that's what you intended.
$endgroup$
– Cassini
9 hours ago
add a comment |
$begingroup$
I keep hearing that one should avoid loops in Mathematica and try to write everything in functional style. I've seen few examples of how this done on here, but I could't apply to my problem successfully. It would be great to pick up new ideas of doing it.
Some data for consistency:
X = 1, 2, 3, 4;
History = 1;
SomeVals = ;
SomeFunction[x_, y_] := x, x + y;
I'm trying to rewrite the following loop into functional style:
For[i = 1, i <= Length@X, i++,
val, History = SomeFunction[X[[i]]^2, History];
AppendTo[SomeVals, val];
]
functions functional-style
$endgroup$
I keep hearing that one should avoid loops in Mathematica and try to write everything in functional style. I've seen few examples of how this done on here, but I could't apply to my problem successfully. It would be great to pick up new ideas of doing it.
Some data for consistency:
X = 1, 2, 3, 4;
History = 1;
SomeVals = ;
SomeFunction[x_, y_] := x, x + y;
I'm trying to rewrite the following loop into functional style:
For[i = 1, i <= Length@X, i++,
val, History = SomeFunction[X[[i]]^2, History];
AppendTo[SomeVals, val];
]
functions functional-style
functions functional-style
asked 9 hours ago
maxgo2maxgo2
583 bronze badges
583 bronze badges
$begingroup$
I'm confused about what you're trying to do. Particularly, I don't understand what you intended History to be used for. The output of SomeVals appears to be 1,4,9,16, which is simply the square of the elements in X. That's trivial to implement (X^2), but I don't think that's what you intended.
$endgroup$
– Cassini
9 hours ago
add a comment |
$begingroup$
I'm confused about what you're trying to do. Particularly, I don't understand what you intended History to be used for. The output of SomeVals appears to be 1,4,9,16, which is simply the square of the elements in X. That's trivial to implement (X^2), but I don't think that's what you intended.
$endgroup$
– Cassini
9 hours ago
$begingroup$
I'm confused about what you're trying to do. Particularly, I don't understand what you intended History to be used for. The output of SomeVals appears to be 1,4,9,16, which is simply the square of the elements in X. That's trivial to implement (X^2), but I don't think that's what you intended.
$endgroup$
– Cassini
9 hours ago
$begingroup$
I'm confused about what you're trying to do. Particularly, I don't understand what you intended History to be used for. The output of SomeVals appears to be 1,4,9,16, which is simply the square of the elements in X. That's trivial to implement (X^2), but I don't think that's what you intended.
$endgroup$
– Cassini
9 hours ago
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
This is precisely the function of FoldPairList
:
SomeVals = FoldPairList[SomeFunction[#2^2, #1] &, 1, X]
Let's do this with a more complex example to show that it works in general:
X = Array[x, 10];
History = 1;
SomeVals = ;
SomeFunction[x_, y_] := a[x, y], b[x, y]
For[i = 1, i <= Length@X,
i++, val, History = SomeFunction[X[[i]]^2, History];
AppendTo[SomeVals, val];]
SomeVals == FoldPairList[SomeFunction[#2^2, #1] &, 1, X]
(* True *)
$endgroup$
add a comment |
Your Answer
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%2f201632%2freplacing-loop-with-functional-style%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
This is precisely the function of FoldPairList
:
SomeVals = FoldPairList[SomeFunction[#2^2, #1] &, 1, X]
Let's do this with a more complex example to show that it works in general:
X = Array[x, 10];
History = 1;
SomeVals = ;
SomeFunction[x_, y_] := a[x, y], b[x, y]
For[i = 1, i <= Length@X,
i++, val, History = SomeFunction[X[[i]]^2, History];
AppendTo[SomeVals, val];]
SomeVals == FoldPairList[SomeFunction[#2^2, #1] &, 1, X]
(* True *)
$endgroup$
add a comment |
$begingroup$
This is precisely the function of FoldPairList
:
SomeVals = FoldPairList[SomeFunction[#2^2, #1] &, 1, X]
Let's do this with a more complex example to show that it works in general:
X = Array[x, 10];
History = 1;
SomeVals = ;
SomeFunction[x_, y_] := a[x, y], b[x, y]
For[i = 1, i <= Length@X,
i++, val, History = SomeFunction[X[[i]]^2, History];
AppendTo[SomeVals, val];]
SomeVals == FoldPairList[SomeFunction[#2^2, #1] &, 1, X]
(* True *)
$endgroup$
add a comment |
$begingroup$
This is precisely the function of FoldPairList
:
SomeVals = FoldPairList[SomeFunction[#2^2, #1] &, 1, X]
Let's do this with a more complex example to show that it works in general:
X = Array[x, 10];
History = 1;
SomeVals = ;
SomeFunction[x_, y_] := a[x, y], b[x, y]
For[i = 1, i <= Length@X,
i++, val, History = SomeFunction[X[[i]]^2, History];
AppendTo[SomeVals, val];]
SomeVals == FoldPairList[SomeFunction[#2^2, #1] &, 1, X]
(* True *)
$endgroup$
This is precisely the function of FoldPairList
:
SomeVals = FoldPairList[SomeFunction[#2^2, #1] &, 1, X]
Let's do this with a more complex example to show that it works in general:
X = Array[x, 10];
History = 1;
SomeVals = ;
SomeFunction[x_, y_] := a[x, y], b[x, y]
For[i = 1, i <= Length@X,
i++, val, History = SomeFunction[X[[i]]^2, History];
AppendTo[SomeVals, val];]
SomeVals == FoldPairList[SomeFunction[#2^2, #1] &, 1, X]
(* True *)
edited 9 hours ago
answered 9 hours ago
RomanRoman
12.7k1 gold badge19 silver badges50 bronze badges
12.7k1 gold badge19 silver badges50 bronze badges
add a comment |
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%2f201632%2freplacing-loop-with-functional-style%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
$begingroup$
I'm confused about what you're trying to do. Particularly, I don't understand what you intended History to be used for. The output of SomeVals appears to be 1,4,9,16, which is simply the square of the elements in X. That's trivial to implement (X^2), but I don't think that's what you intended.
$endgroup$
– Cassini
9 hours ago