Questions on writing non-trivial programs in Mathematica. Do not use this tag for questions on plotting/graphics or for questions on doing mathematics with Mathematica, where the focus is more on the math than the program.
193
votes
10answers
22k views
Where can I find examples of good Mathematica programming practice?
I consider myself a pretty good Mathematica programmer, but I'm always looking out for ways to either improve my way of doing things in Mathematica, or to see if there's something nifty that I haven't ...
81
votes
1answer
12k views
Mathematica Minecraft
Some time ago I asked myself: with all these great graphics and interactive capabilities of Mathematica, what kinds of 3D games can be implemented in it? And the answer which came to mind is ...
64
votes
14answers
2k views
What are the most common pitfalls awaiting new users?
As you may already know, Mathematica is a wonderful piece of software.
However, it has a few characteristics that tend to confuse new (and sometimes not-so-new) users. That can be clearly seen from ...
54
votes
3answers
4k views
Alternatives to procedural loops and iterating over lists in Mathematica
While there are some cases where a For loop might be reasonable, it's a general mantra – one I subscribe to myself – that "if you are using a ...
52
votes
7answers
4k views
Struct equivalent in Mathematica?
I really miss having something like a struct in Mathematica. I know of (and regularly use) a couple of programming techniques which feel like a ...
48
votes
1answer
1k views
Programmatic formatting for Mathematica code - possible?
It seems to be both an interesting programming challenge and a very useful practical application to have a Mathematica program which would allow one to pretty-print Mathematica code, so that it is ...
40
votes
2answers
783 views
Flatten command: matrix as second argument
One thing I could never wrap my head around is how Flatten works when provided with a matrix as the second argument, and the Mathematica help isn't particularly ...
37
votes
1answer
2k views
Is there an open source implementation of Mathematica-the-language?
I've seen questions before such as "What is the best open-source equivalent for Mathematica?", but that specific question (and that line of inquiry in general) cares more about the computer algebra ...
34
votes
8answers
4k views
How to check if a 2D point is in a polygon?
Background: I use code from An Efficient Test For A Point To Be In A Convex Polygon Wolfram Demonstration to check if a point ( mouse pointer ) is in a ( convex ) polygon. Clearly this code fails for ...
33
votes
2answers
857 views
Performance tuning for game solving (peg solitaire | senku)
There's a game I saw at a friend's yesterday, that I often see at people's homes, but never for enough time to think on it too hard. It's called peg solitaire (thanks @R.M).
So I came home and I ...
32
votes
5answers
2k views
What does the construct f[x_] := f[x] = … mean?
This question mentions "x := x = trickery".
What does defining a function as f[x_] := f[x] = ... do and what is it good for?
31
votes
7answers
894 views
Updating Wagon's FindAllCrossings2D[] function
Stan Wagon's Mathematica in Action (second edition; I haven't read the third edition and I'm hoping to eventually see it), demonstrates a nifty function called ...
30
votes
3answers
2k views
Metaprogramming in Mathematica
Being functional, and having no "quotation", i.e. essentially treating data and programs semantically same, Mathematica seems naturally capable of doing metaprogramming. But could anyone construct a ...
30
votes
4answers
1k views
How can I implement dynamic programming for a function with more than one argument?
Dynamic programming is a technique for avoiding the repeated computation of the same values in a recursive program. Each value computed is immediately stored. If the value is needed again, it is ...
30
votes
1answer
608 views
Once more on object orientation in Mathematica: does it have to be so hard?
Recently I came across a set of problems which would be solved most easily within an object-oriented approach. I first attempted to solve them by other means, but found the complexity of the code ...
29
votes
6answers
930 views
Functions vs. patterns
Every time I define a new function, I wonder which construct I should use: true functions obtained by using Function, or rule-based syntax. For example, these are ...
29
votes
2answers
864 views
What is a Mathematica packed array?
A simple sounding question with a few sub questions:
What is the difference between unpacked vs packed array?
Are packed arrays more space efficent, how much so?
Are packed arrays more time ...
27
votes
9answers
6k views
Generating a Sierpinski carpet
I am trying to draw a Sierpinski_carpet. I have code that works, but I think there is a more elegant way to do than my way. Maybe I couls use Tuples or ...
27
votes
4answers
944 views
Finding a percolation path
I would like to examine percolation on a random lattice. To be exact, I wish to find the minimum length of a 'bond' needed such that the leftmost site can be connected to the rightmost site.
Here is ...
25
votes
3answers
453 views
Is there a convenient way to copy/paste text-interspersed SE code snippets into Mathematica?
Is there a way to copy and paste code snippets from SE to Mathematica if these snippets are interspersed with text?
Like e.g. in Morphing Graphics, color and location in both the question and answer, ...
24
votes
4answers
1k views
Can Mathematica be regarded as a software prototyping environment?
I am an undergraduate student, starting to use Mathematica to model simple physical chemistry problems, as a prelude to a summer internship in a computational/theoretical chemistry group. The solution ...
24
votes
7answers
854 views
Having used Mathematica as a “gateway” language, where to from here?
I have been using Mathematica for about a year. It is the first language that I have attempted to learn. I'm still very much a newbie, but there are moments I feel more like I am waving than drowning. ...
24
votes
5answers
1k views
Are there any cases when For[] loops are reasonable?
To my mind the only reason for the existence of For[] loops in Mathematica is to allow new users with some experience in procedural programming languages to write ...
23
votes
3answers
1k views
How to create a progress bar?
I would like to create a progress bar tool that allows me to see how my computations are going.
I found answers to this question on many sites, I even found a package for it ( ...
23
votes
4answers
841 views
How do I evaluate only one step of an expression?
I am looking for a simple, robust way to evaluate an expression only one step, and return the result in a held form.
The definition of a single step is ambiguous, and this itself is probably worthy ...
22
votes
4answers
601 views
Question about collections of custom GUI controls for Mathematica
Background: I have only recently begun programming GUIs in Mathematica, so I have a continuous need for custom controls. I needed a scrollable list control and with the help of Google I found a ...
22
votes
3answers
509 views
Suitability of Mathematica as platform for engineering calculations and programs
I am considering using Mathematica with Wolfram Workbench as a standard platform for calculations and programs in a large engineering department. I am looking for a solution that would provide better ...
22
votes
1answer
368 views
On drilling holes with minimal redundancy (and with colors!)
The old Mathematica package Graphics`Shapes` featured the function PerforatePolygons[], which drilled a hole in any ...
21
votes
4answers
802 views
Is it necessary to have a prior computational background or is it possible to learn Mathematica as a first programming language?
I have a background in economics and I'm very interested in learning Mathematica but I'm afraid of starting out because I have seen that most programmers already have a good background in some kind of ...
21
votes
3answers
2k views
ListPlot with each point a different color and a legend bar
I would like to generate a ListPlot with the color for each point in the plot corresponding to a particular value (not associated with the position in the plot). I'd then like to add a legend ...
21
votes
6answers
870 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.
...
21
votes
3answers
661 views
Sum over n variables
What is the most painless way to sum over n variables, for example, if the range of summation is $i_1 < i_2 < i_3 < \dots < i_n$, where $n$ is an argument of the function in question?
Is ...
21
votes
0answers
106 views
How safe is the use of Block and Internal`InheritedBlock
For many questions on this site answers are given which suggest to use Block and, especially for more advanced topics, ...
20
votes
4answers
548 views
What tools can help in realizing tail recursion?
I had nice discussions with Leonid and Rojo that got me interested in tail recursion. Tail recursion is not always easy to realize with Mathematica, so it would be nice to have some tools to help with ...
20
votes
1answer
796 views
Programmatically retrieving e-mails from a remote server
Mathematica has a function for sending mail (SendMail) and can import the MBOX format. But what I'd like to do is ...
19
votes
3answers
1k views
Mathematica as a normal programming language
I'm interested in Mathematica's core language for both practical development and as an object of computer science study. Actually, the former is more of a means to the latter. I would like to create ...
19
votes
3answers
273 views
Efficiently appending points to a NearestFunction
I have a program which works with a list of points (in 3D, but it could be in 1D as well, it won't make a difference). Within a loop, it keeps adding new points to the list. To calculate the ...
19
votes
3answers
323 views
How can I regroup elements in a list into a tree based on their values?
I have a list of elements in an outline, here is an example that is only 3 levels deep:
...
18
votes
5answers
594 views
Voronoi diagrams for generators other than points
Any suggestions how to determine Voronoi diagram for sites other than points, as e.g. in the picture below? Input is a raster image.
18
votes
6answers
812 views
18
votes
3answers
643 views
Downloading files without using Import
A quick question, but which I don't believe has been asked here or at SO.
Does Mathematica have a simple way to just download a file from the web? i.e. if I have a list of PDF links (~ 2,000), can I ...
18
votes
3answers
526 views
Is using undocumented functionality a Bad Idea™?
Mathematica has a lot of very useful undocumented features. For example a hash table, a built-in list of compilable functions, additional options to CurrentValue, ...
18
votes
4answers
360 views
Continuous evaluation of complex calculations
When having a first look at some system, it's often very useful to just play with the parameters and see how it develops. Therefore, I would like to let a certain evaluation run "until I cancel it".
...
18
votes
11answers
645 views
Generating an ordered list of pairs of elements from ordered lists
I have a pair of ordered lists. I want to generate a new ordered list (using the same ordering) of length n by applying a binary operator to pairs of elements, one from each list, along with the index ...
18
votes
2answers
277 views
What is the equivalent of a prototypical Manipulate in lower level functions?
Background: In the Mathematica tutorial 'Dynamic Interactivity' I read that there is a way of developing GUIs in Mathematica that do not use Manipulate. I want to ...
18
votes
3answers
405 views
18
votes
4answers
499 views
Efficient circular buffer?
I wish to create an efficient circular buffer. That is, I wish to keep a fixed length list while appending a new value and dropping the oldest, repeatedly.
As we know lists in Mathematica are ...
18
votes
2answers
756 views
Debugging memory leaks
I've written my incredibly complex, incredibly elegant analysis function, that works great on small test data. But when I run it on my real (bigger) data set it keeps running out of memory. It turns ...
18
votes
3answers
823 views
What is a type in Wolfram Mathematica programming language?
"Everything is an expression" is a popular citation from many Mathematica guidebooks. So, what is type in Mathematica? How does it relate to common types from Haskell, for example?
I did some ...
18
votes
3answers
441 views
Finding a “not-shortest” path between two vertices
In designing a routine for making a simple three dimensional (5x5x5) labyrinth, I realized that my solutions (a solution is a labyrinth includes a single path from {1, 1, 1} to {5, 5, 5} in a 5 x5x5 ...
