Questions tagged [functional-style]
Questions about Mathematica's functional programming style, including the use of pure functions (Function[], #, &) and functions such as Map, Apply, Nest, and Through.
90
questions
41
votes
4answers
3k views
Function 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:
...
48
votes
2answers
5k views
Scan vs. Map vs. Apply
I cannot understand the difference between Apply, Scan, and Map.
I have tried to play with ...
107
votes
9answers
5k 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 ...
20
votes
3answers
5k views
How do I convert an argument list to a sequence of arguments?
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 ...
25
votes
2answers
2k 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 ...
130
votes
9answers
11k views
General strategies to write big code in Mathematica?
I think after six months of exposure to Mathematica and the Wolfram Language I am fairly OK with writing short codes and snippets. However, what are some general strategies to use in order to write ...
23
votes
1answer
866 views
Shorter syntax for Fold and FoldList?
I find it tedious to write out the following:
a = {1, 2, 3, 4};
Fold[f, First @ a, Rest @ a]
f[f[f[1, 2], 3], 4]
It ...
38
votes
12answers
3k 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 ...
11
votes
3answers
11k views
Using sets of arguments from a list
Please Consider :
list={{5,2,6},{2,8,3}}
I need to get the product of all the element within list :
As of now I do this :
...
39
votes
8answers
3k 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.
...
35
votes
3answers
1k 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 ...
7
votes
3answers
965 views
Replace For-loop with functional code
I am very new to Mathematica. I have code written using for loops. I want to rewrite it using Map/Thread but I am not sure how ...
33
votes
3answers
725 views
FoldWhile and FoldWhileList
Mathematica has had NestWhile and NestWhileList for some time. But, to date, it has not implemented a built-in ...
14
votes
3answers
359 views
Using Through to evaluate complex expressions
Suppose we're given the expression f*g+h, where f,g,h are all pure functions. How can we evaluate this expression on some ...
28
votes
3answers
4k 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: ...
34
votes
3answers
790 views
Is there a comprehensive list of functions with operator forms?
As of version 10, Mathematica sports operator forms for many functions like Map, SortBy, ...
10
votes
2answers
424 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 ...
33
votes
2answers
2k 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 ...
30
votes
2answers
1k views
What is the difference between Composition (@*) and sequential applications (@)?
What is the difference between
f@*g@*h@x
and
f@g@h@x
Both evaluate to
f[g[h[x]]]
...
18
votes
4answers
965 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 ...
9
votes
4answers
3k 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 ...
11
votes
4answers
419 views
Handy / flexible directory tree operations
Is there any shorter / more handy / more flexible way to get directory tree as a nested Rules/Associations list?
I tried to incorporate ...
6
votes
5answers
346 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:
...
29
votes
3answers
596 views
Analogies to Help New Users
In many of the classes that I teach, I require students to learn the basics of Mathematica which we use throughout the semester to do computations and to submit homeworks (in notebook form). Some ...
26
votes
3answers
778 views
How and why to use monadic programming in Mathematica?
This is a methodological question with two parts:
How to use monadic programming in Mathematica?
Why use monadic programming in Mathematica?
In my opinion the questions are inter-related -- we ...
18
votes
7answers
2k views
How to map and sum a list fast?
The following takes a lot of memory and is slow:
AbsoluteTiming[Total[Map[#^2 &, Range[1, 100000000]]]]
I suspect this is because it first calculates and ...
5
votes
2answers
325 views
Overlapping pure functions
Let say I need and option for Plot:
RegionFunction -> (-6 < #2 < 6 &)
But I also want those ...
20
votes
4answers
628 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
4answers
566 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
5answers
521 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
...
9
votes
2answers
358 views
Evaluation in lambda function
If I have a function, that returns a function, for example:
f[a_] := a^2 * # &
then
f[3] == 3^2 # &
Is there a way ...
1
vote
1answer
422 views
Arbitrary depth patterns/rules
Temporary message: I am now really confused. I am not sure how using Power and Unevaluated together works in the examples below.
While answering this question, I stumbled upon the following.
We ...
15
votes
4answers
973 views
How to replace the first occurence in an expression instead of replacing all?
Is there a function that replaces the first occurence of the expression instead of replacing all? For example, if I have HoldForm[x + 2 + 4 + x] /. x -> 4, is ...
6
votes
2answers
551 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), ...
11
votes
2answers
480 views
Combining pure functions
Is there an easy way to combine pure functions into a single pure function? For example, say I have
f = #1^2 &;
g = #1 - 2 &;
and I want to define a new ...
7
votes
2answers
703 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 $n$...
3
votes
1answer
649 views
NestList with a list inside?
I'm new to Mathematica, and was looking for more efficient ways to implement the Do loop below. a, ...
2
votes
1answer
280 views
General function taking general number of arguments
The following is an edit of this post, for which a working solution was provided by John McGee. I have a different function and am not sure how to adapt the solution for it:
I want to construct a ...
33
votes
5answers
2k 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 ...
27
votes
3answers
1k views
Monad-like structures in Mathematica
I have been trying to code monad-like structures in Mathematica. However, I am facing some issues and I was wondering if anyone can help. I will give some background in the hope it can be useful to ...
11
votes
5answers
726 views
How to find first list element that differs from average of N previous elements by more than a given amount?
Given a list of real numbers, I need to write a function that returns the value of the first element in the list that differs from the mean of the previous $N$ elements by greater than $P$ standard ...
18
votes
1answer
1k views
How best to simulate n-body systems in a functional way?
I want to simulate a N-body system in the most functional way possible. The system I'm modeling are metallic colloidal particles in a solution of peroxide water, as here http://arxiv.org/pdf/1502....
14
votes
3answers
924 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
2answers
581 views
Choose between `Apply` and `Map`
Even though this might be too general question(or not answerable), I want to get some advice here. I apologize in advance if it is not a relevant question.
I frequently have to process large list of ...
3
votes
1answer
89 views
Best way to apply a list of functions to a list of values?
This question is closely related to questions 83720, 17460, and 11298.
How would you write the operator
F = Through[#1[#2]] &
in the prettiest, fastest, or ...
7
votes
2answers
333 views
Why are we so sure about Map results?
I do abuse it often but when I have faced this feature first time I was really suprised:
i = 0;
(i++; # - i) & /@ Range[5]
{0, 0, 0, 0, 0}
What am I ...
5
votes
1answer
195 views
How can I get all pairs of values from an association with elements key->list
I have an association of the form
ds=<|key1 -> list1, key2 -> list2,... ,keyn -> listn|>
I would like a simple way to map a function to all pairs <...
5
votes
4answers
867 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?
...
9
votes
3answers
522 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:
...
6
votes
2answers
594 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 ...