Questions about Mathematica's functional programming style, including the use of pure functions (Function[], #, &) and functions such as Map, Apply, Nest, and Through.
50
votes
7answers
1k views
Functional style using lazy lists?
Let's say I want to answer the question "what are the first 400 palindromic prime numbers?"
The first approach that comes to my mind from the set of languages that I know is to use some sort of lazy ...
24
votes
3answers
285 views
FoldWhile and FoldWhileList
Mathematica has had NestWhile and NestWhileList for some time. But, to date, it has not implemented a built-in ...
23
votes
12answers
835 views
Map a function across a list conditionally
It seems that this is a really basic question, and I feel that the answer should be obvious to me. However, I am not seeing. Can you please help me? Thanks.
Suppose I have a list of data ...
21
votes
6answers
877 views
Can this be written well, without loops?
Inspired by this question I would like to know if the following code can be written without explicit loops (For, While, etc.) in a clean, efficient and non-contrived way. I have been unable to do so.
...
16
votes
1answer
292 views
Prefix operator with low precedence
The question is simple, but I will elaborate on the background as well for those interested in the idea:
How to define a new operator with specified precedence value?
Background
Mathematica was ...
16
votes
2answers
629 views
Does every Symbol in Mathematica induce a monad?
From my question about types in Mathematica, I assume that every Symbol in Mathematica is a type if it appears as a Head of some ...
15
votes
3answers
553 views
Programming a numerical method in the functional style
I am new to Mathematica and I would like to learn a bit more about functional programming.
At the moment I have assignments like programming different numerical methods (for integration: ...
15
votes
1answer
232 views
Are there advantages to using additional arguments of common functions rather than alternative ways of calculating with lists?
(Apologies for the long question title.)
One of the interesting, if sometimes confusing, things about Mathematica is that there is always more than one way to do things. Even intermediate users can ...
14
votes
4answers
544 views
Is there a more elegant and efficient way to write brainf*** style loops in Mathematica?
I'm having some fun writing a brainf*** interpreter in Mathematica. See this wiki article for more info. It works nicely but I'd like to find an elegant, preferably functional, way to handle the ...
14
votes
3answers
363 views
Using pure functions in Table
I need a table with the elements made of pure functions and list elements. This is a simplified example:
I need a list as:
...
14
votes
3answers
431 views
How can I improve my code for drawing a tree?
This code draws a tree, but it's not in the functional style.
...
13
votes
3answers
488 views
Can someone explain this snippet: (#[#] &)[#[#][#] &]
A friend showed me this snippet of code today:
(#[#] &)[#[#][#] &]
I can sort of see that we're constructing an anonymous function that takes a function ...
13
votes
3answers
199 views
How to keep some of the results of the NestList
I'm using some iterative arithmetics to calculate wave propagation with the help of NestList. I have to use a small step size for iteration to guarantee the accuracy, which lead to too much data (e.g, ...
12
votes
5answers
568 views
How to improve this code for solving the “Mr.S and Mr.P” puzzle?
Mr.S and Mr. P puzzle — "Formalization of two Puzzles Involving Knowledge", McCarthy, John (1987)
We pick two numbers $a$ and $b$, such that $a\geq b$ and both numbers are within
the range ...
12
votes
2answers
333 views
12
votes
2answers
292 views
Going full functional (Haskell style)
I'm trying to define some notation so that Mathematica code would be more functional, similar to Haskell (just for fun): currying, lambdas, infix operator to function conversion, etc.. And I have some ...
11
votes
2answers
421 views
Using a list of tuples in a pure function
I want to use a list of tuples within a function to make assignments.
Say I want to make assignments of the form
value[i,j] = val
What I have is a list of ...
11
votes
2answers
315 views
What's the most “functional” way to do Cholesky decomposition?
I can do Cholesky in a procedural style, such as:
...
11
votes
2answers
200 views
From iterative to functional
How to write this small piece in a functional way (ie. without state variables)?:
...
10
votes
4answers
491 views
How to write this without For loop
Suppose I have a few lists of numbers and want to exponentiate element-wise, then sum up everything into a polynomial.
For example, if I have
...
10
votes
4answers
236 views
Thread a function over a list and with a non-atomic 2nd parameter?
From the documentation, Thread's behavior on functions where the first parameter is a List and the second is an atomic expression, is this:
...
10
votes
0answers
227 views
How can I trace a functional expression's evaluation visually?
Ok, so the goal is to visualize the execution of this expression
foo /@ {3 + 1, bar /@ {1 + 2, {4 + 7}}}
in the following fashion using nested rectangles with ...
8
votes
3answers
316 views
Can this code be written in a more functional style
Referencing this question, I wonder if the following code can be written more concisely using a functional style, i.e. without For loops or ...
8
votes
4answers
205 views
Transform a list of functions to a composition
How do I apply a list of functions in a nested way?
Example:
functionList = {f1,f2,f3}
RequiredCommand[functionList,Pi]
such that the required command returns
...
8
votes
2answers
180 views
Cases[data,Colon[key,_]] vs. Cases[data,key:_] toward XPath, XQuery
Exploring methods to index and search tree-structured key:value pairs via named-entity index (key paths) as opposed to Position-based indexing.
Using Rule as ...
8
votes
3answers
180 views
Map over list of functions
I would like to convert a list of $n$ complex equations to a list of $2n$ real ones. At the moment I am doing it like this:
...
7
votes
3answers
341 views
Rewriting For loop to FoldList or similar
In CrossValidated, the answer to a question on prediction of number of viewers of Gangnam Style is given in R. I have mapped the answer directly to Mathematica:
...
7
votes
2answers
245 views
Feedback on Functional Programming: Propagation of uncertainty
Lately I've been trying to use functional prgramming and tried to implement the gaussian propagation of uncertainty (without correlation) in an elegant way, here is the outcome:
...
6
votes
5answers
219 views
How to nest my own “times” function to get powers
I have a "times" function. I'd like to create a power function using it. It should look like this for an 6th power:
...
6
votes
3answers
210 views
6
votes
4answers
434 views
Alternatives to While Loops?
I am using Mathematica to run a probabilistic simulation. Essentially, I have a list of members of a population (they only have one, numerical, attribute, so it's just implemented as a list of ...
6
votes
1answer
327 views
How to solve this iteration in the functional programming way?
I am trying to come up with a functional programming method to calculate a list of replacements, that depend on previous replacements. Since there is always a finite number of steps, I would like to ...
6
votes
0answers
111 views
What are some general strategies to avoid using For loops? [duplicate]
Possible Duplicate:
Iterating over lists in Mathematica
While there are some cases where a For loop might be reasonable, it's a general mantra – one I ...
5
votes
3answers
144 views
All values for a function with two arguments without Outer
Given two lists $l_a = \{a_1, a_2, a_3\}$, $l_b = \{b_1, b_2, b_3, b_4\}$ and some function $f$ accepting two arguments, how can I produce a list of all values $f(a, b)$ for $a\in l_a$ and $b \in l_b$ ...
5
votes
2answers
182 views
Variant of the cutting-stock problem in Mathematica
I'm pretty new to Mathematica and am trying to learn to solve problems in a functional way. The problem I was solving was to list the ways in which I could sum elements from a list (with repetitions), ...
5
votes
1answer
166 views
Composite graphics with Row, Column, data aggregation and layout control
This chromogram shown here
represents data (mouse activity patterns during visits) for ~20 physicians in a study, each of which may have a variable number of visits in the study (physicians are color ...
4
votes
6answers
176 views
Filter list with different list in it
I have a list like:
{{{4, 14}, 1}, {{4, 15}, 1}, {{4, 16}, 1}, {{4, 17}, 1},
{{4, 18}, 1}, {{4, 14}, 3}, {4,15}, {{4, 16}, 2},{4,18}}
Now I want to ...
4
votes
3answers
284 views
4
votes
4answers
229 views
How to transform Do loop to more efficient codes?
I'm new to Mathematica. Here is my original program: How to rewrite the Do part?
...
4
votes
2answers
157 views
How can I improve this trial division procedure?
My background is procedural programming, so I find this construction quite natural. Is there a way to get rid of the While?
...
4
votes
2answers
188 views
Define product derivative
How do I define the $n$th product derivative of a function in Mathematica?
The first product derivative $f^\ast$ of a function $f$ is
$$
f^\ast(x)=\exp\left(\frac{f^\prime(x)}{f(x)}\right)
$$
The ...
4
votes
1answer
120 views
Why is this code in functional style is slower than procedural style?
I know that in Mathematica a functional programming style is often more efficient than procedural style programming using For loops. But the code shown below seems ...
4
votes
2answers
125 views
Update a function avoiding infinite recursion
I am quite new to Mathematica and not completely familiar with functional programming. I am currently working with a function (call it foo) and wish to change its behaviour, for example, by adding 1 ...
4
votes
1answer
173 views
Timing differences between multiple executions of identical code
I have a
list of pairs of numbers and I'd like to change the sign of the second element in each pair i.e. $(a,b)\rightarrow (a,-b)$.
I'm sure there are many ...
4
votes
4answers
212 views
Differentiating space curves
I'm trying to do some very basic differential geometry of space curves. For example, a space curve $\gamma:\mathbb R\to\mathbb R^3$ has unit tangent and normal vectors given by
...
4
votes
1answer
111 views
Functional Programming: modify EdgeList based on condition
I have a simple functional programming question: I have a simple EdgeList defined in Mathematica, I would like to modify the value of certain element of the list based on a condition.
I see how to ...
4
votes
1answer
185 views
3
votes
3answers
71 views
Applying a function of several arguments to the rows of a matrix
I have a user-defined function which takes three vectors as input. Suppose that is like this:
f[a_, b_, u_] := Total[a*Total[u]^b]
Usually I have vectors for ...
3
votes
2answers
120 views
How do I convert an argument list to a list of arguments? [closed]
I think this is a basic question, but I am having difficulty finding the answer in the documentation. Thread is not what I am looking for, I think.
Suppose that I ...
3
votes
1answer
244 views
Explanation on why Compile statement works only if input and output sizes work
I found the following code:
Compile[{{m, _Real, 2}}, Fourier[m]][Table[N[i - j], {i, 4}, {j, 4}]]
which doesn't work correctly. But the following was posted as a ...

