For questions on writing functions (pure or using Set/SetDelayed) for any purpose, including the features that may be incorporated in those functions, such as options, patterns and conditions.
28
votes
6answers
913 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 ...
14
votes
3answers
343 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:
...
47
votes
4answers
2k views
Functions with Options
Suppose you want to create a function which has optional arguments.
Maeder's book "Programming in Mathematica" covers the topic extensively up to version 3, but some things have changed/evolved since ...
8
votes
2answers
252 views
Define parameterized function
I would like to be able to define the gain function of a system from its parameters. Specifically, I'd like to define a function that accepts two inputs, call them $b$ and $w$, and returns a function ...
13
votes
2answers
296 views
SetAttributes[f,Flat]: Why the order dependence?
I'm experiencing a strange phenomenon. Here's a (quite artificial) test case:
The following definition work just fine:
...
14
votes
5answers
760 views
The difference between 0. and 0
I have a function for which 0 is a special case:
f[A___, 0, B___] := 0
But since I am doing numerics, sometimes in the course ...
26
votes
6answers
968 views
How can I create a function with optional arguments and options?
Is it possible to create a function with optional arguments that also takes options?
Here is a simple example. I have a function f with option "g". It also has ...
28
votes
2answers
590 views
Tiling a square
I wondered if there was a way to automate the process of finding a way to tile a tile into a square.
The idea is to represent the tile with a matrix of 0s for blank space and 1s for filled spaces ...
15
votes
8answers
536 views
How do you check if there are any equal arguments(even sublist) in a list?
I would like to set up a function which has to return True if at least two arguments of a given List are equal.
So if I give {1,4,6,2} to the function it has to ...
9
votes
1answer
333 views
How to Combine Pattern Constraints and Default Values for Function Arguments
EDIT: As several respondents have noted in the answers and comments below, the original example had a default value that would never be used because of the way patterns and default values are ...
22
votes
6answers
669 views
Convert an expression to a Function
I need a function which can take an expression and return a pure function based on the symbols in the expression. The symbols might have values so must be protected from evaluation. It is probably ...
13
votes
3answers
386 views
Is it possible to get the order of inputs when “overloading” an orderless function?
When working with symbolic matrix operations or other objects which don't have commutative multiplication, it would be nice to not have to constantly switch out times for ...
10
votes
1answer
286 views
Lazy lists of Tuples and Subsets
I'm trying to build a lazy list that evaluates the n'th m-tuple or subset of a given list using Mathematicas ordering without calculating all the Tuples. The purpose is to allow for example the ...
15
votes
4answers
238 views
Enforcing correct variable bindings and avoiding renamings for conflicting variables in nested scoping constructs
Using global variables the following turns an "expression" into a Function:
expr = 2 x;
Function[x, Evaluate[expr]]
Of course ...
4
votes
2answers
899 views
How to find (numerical) value of a derivative at point?
I have the following function:
f[0, 0] = 0
f[x_, y_] := Exp[-(x^2 + y^2)^(-1)]
How do I find its partial derivatives at any given point, including $(0,0)$? This ...
6
votes
3answers
201 views
Using function with multiple definitions in Manipulate
I'm trying to use Manipulate to visually try out different values of lambda in a Box-Cox transformation. I've created a boxcox ...
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 ...
14
votes
5answers
602 views
picking random items out of a list only once
I'm trying to create a function that randomly returns a value from a list but remembers the values that have been given before. At the end when the list is empty it should return an empty list. ...
21
votes
1answer
270 views
which is better, using Assert[] or manual checks on arguments and other computations?
I never used Asserts in Mathematica, but trying to see what advantage they have over just argument check and additional definitions of the function to capture unwanted input.
For example, which one ...
8
votes
4answers
134 views
How to pass a list of arguments into HoldAll
I have a list of arguments (which in reality is lengthy):
arguments = {a, b, c}
arguments2 = {a_, b_, c_}
f[Sequence@@arguments2] := a + b + c
Note: It seems ...
12
votes
1answer
195 views
How to make a function like Set, but with a Block construct for the pattern names
How can we define a function that works like f[x_]=ComputeSomething[x] and treats x as a variable that does not have a value? ...
10
votes
1answer
107 views
Multiple templates for a single user-defined function
How do I use the ::usage tag to allow the Mathematica v9 front end to know that there are multiple ways to call an overloaded function (a function that can have ...
6
votes
3answers
221 views
Composition of mappings not working as expected
I have two functions $f,g:\mathbb{R}^2 \to \mathbb{R}^2$ and I define a third one $h:\mathbb{R}^2 \to \mathbb{R}^2$ as the composition $$h(x,y) = g(f(x,y))$$
I'm trying to get this function into ...
4
votes
3answers
125 views
Constructing a function with Flat and OneIdentity attribute with the property that otimes[a]:>a
I want to have a function (called otimes) with the following two properties:
it has the attribute OneIdentity and ...
6
votes
2answers
309 views
Building matrices by attaching vectors (columns) and matrices
Having the need to attach a column to a matrix or to join matrices to make longer rows is an operation that I use very frequently and I find the Join function ideal ...
2
votes
0answers
194 views
Generating a function which outputs possible chemical reactions
I want to make a list of chemical reactions and I write them down in a $\require{mhchem}\LaTeX$ format. They are of the following form
$$NA_n^i+MB_m^j \rightarrow \hat NA_{\hat n}^{\hat i}+\hat ...
21
votes
3answers
656 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 ...
22
votes
1answer
404 views
How to augment the realm of functions Mathematica thinks it knows how to integrate symbolically
My question involves extending the functionality of Integrate over specific integrals in the most generic manner.
Specifically, is it possible to "hack into" ...
14
votes
6answers
562 views
Using patterns in pure functions
Pure functions may be handy if you don't want to assign your function a name. For example I would calculate $x(x-1)$ for some numbers $x$ by
...
13
votes
3answers
151 views
Can I make a default for an optional argument the value of another argument?
I'd like to define a function with several optional arguments, some of which default to the value supplied for other arguments. For example, I'd like to be able to write something like
...
11
votes
2answers
241 views
Using several anonymous functions mixed together
This works:
list // BarChart[#[[2]], ChartLabels -> DateString @@@ #[[1]], ChartStyle -> "Pastel"] &
This doesn't:
...
10
votes
3answers
379 views
What is Mathematica's equivalent to MATLAB's filter function?
The MATLAB code
filter(0.5,[1, -0.5], [1:10])
is equivalent to
Rest@FoldList[(#1 + #2)/2. &, 0, Range[10]]
I don't ...
10
votes
3answers
463 views
Passing down arguments
In R, one can use ... to pass arguments down to another function. For example
...
9
votes
4answers
260 views
Can a function be made to accept a variable amount of inputs?
I have a function that takes two inputs and processes them for a single output. What I need is one that can take a varying number of inputs. and process them to a single output. Is this possible in ...
6
votes
3answers
202 views
Where in the documentation can I find a list of function argument types?
Recently, I learned that it is possible to assign "types" to function arguments in the definition of a function. Suppose I have a function stringFun that does some ...
11
votes
4answers
283 views
Assessing argument type in set delayed function definitions
I'm wondering how to properly assess the type of arguments passed to functions defined with :=. I want my functions to be the most efficient, unambiguous and clear ...
9
votes
6answers
1k views
Recursive function with if-statement
I am trying to represent the following function definition in Mathematica:
$$\begin{align*}
f(1)&=1 \\ f(2n)&= \begin{cases}f(n) & \text{if}\space n\equiv0\pmod{2} \\ 2f(n) & ...
7
votes
3answers
130 views
How to set a TraditionalForm output for a symbol
How do I set a TraditionalForm output for a particular symbol/function?
In particular I would like my user-defined symbol ...
12
votes
2answers
181 views
Pattern that matches colors
Suppose I'm writing a function that takes a color as a parameter; for example:
drawShape[color_] := Graphics[{Style[Disk[], color]}];
But if the caller inputs an ...
12
votes
3answers
271 views
Function that counts the number of arguments of other functions
I have a newbie question: is it possible to write a function that counts the arguments (total and optionals) of a given function? Possibly it should be able to work with built-in and custom functions ...
10
votes
5answers
308 views
define a function from a list
I would like to create a mapping from a list and I am wondering if there is a slick way of doing it.
For example, consider the list
...
7
votes
4answers
334 views
Force function to make assumptions about its input variables in Mathematica
I'm trying to force a Mathematica function to make an assumption about its input variables. In my case, I'm trying to define a function to return the pdf of a Gaussian. But let's use a simple toy ...
6
votes
4answers
170 views
Function argument to default under certain condition
Inspired by this and this question (and how I handle this in practice), what is the best way to default a function value when a certain condition is met?
For example, if a function is defined as:
...
6
votes
1answer
101 views
Property assignment on a graph vertex using PropertyValue does not work inside a function
I created this function:
AddStone[board_Graph, v_, s : white | black | empty] :=
PropertyValue[{board, v}, VertexState] = s
This function should change the ...
5
votes
1answer
127 views
How to find the name of the current function
I would like to know the name of the current function from within that function. For example, consider the following code
...
4
votes
3answers
165 views
Define an 'inner product' with AngleBracket
I want to define my own little 'Inner Product' function satisfying properties of linearity and commutativity, and I'd like to use the "$\langle$" and "$\rangle$" symbols to output my results. For ...
3
votes
1answer
124 views
Feedback on my Subscript code
I have written a code, and I need a little feed back..
I want to make the Subscript distributive across (1) addition and (2) multiplication to mimic short-hand for ...
2
votes
4answers
277 views
How to write a differential operator in Mathematica
I have a very basic question. I am trying to code the LHS of the differential equation:
...
2
votes
2answers
111 views
How to achieve Set+Part like behaviour in custom Set function?
So I've been toiling away on my DataFrame package. I've been trying to get Set to work with it, but it seems it either can't be done (ie via ...
2
votes
3answers
233 views
How do I construct a pure function to extract data fields from records that are strings?
How can I get from data segment format to the final segment format with a pure function? The data fields are fixed length. There are no separators between the fields.
a) list
...

