12/3/14

Mathematica Pure Functions that Refer to Themselves

Like any functional programming language, Mathematica has built in pure functions that are made with expressions having variables "#N" for N=0,1,2,3, and so on. The variable #0 refers to the function itself, making it possible to write the following functions.

The first is the factorial function:

In[1]:= If[# == 0, 1, #*#0[# - 1]] & /@ {1, 2, 4, 8, 16}

Out[1]= {1, 2, 24, 40320, 20922789888000}

The second is a function that takes a natural number and produces its associated Von Neumann numeral:

In[2]:= If[# == 0, {}, Append[#0[# - 1], # - 1]] & /@ {2, 4, 8, 16} // Column

Out[2]=

{0,1}
{0,1,2,3}
{0,1,2,3,4,5,6,7}
{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}

11/26/14

Naive Spatial Relations Between Marks in Assemblies

An assembly of marks is any collection of marks that are near each other on a page. From our experience with making marks and assemblies of marks we develop a notion of space together with a collection of basic spatial relations. The notion of "nearness" which is used in our informal definition of assembly of marks is itself a basic spatial relation and is capable of a more detailed description with regards to its use in defining the notion of assembly.

Each of the selected/boxed marks occurring in the following assemblies are above an occurrence of *.


Each of the selected/boxed marks occurring in the following assemblies are below an occurrence of *.


Each of the selected/boxed marks occurring in the following assemblies are to the right of an occurrence of *.


Finally, each of the selected/boxed marks occurring in the following assemblies are to the left of an occurrence of *.


These spatial relations are a basic part of not only math and science, but our daily life. A child is taught to identify and use these spatial relationships in their reasoning about basic spatial navigation. We now make further observations about the relations between these spatial relations.

Each of the selected/boxed marks occurring in the following assemblies is not above and not below the occurrence of *.


Notice that when a mark is not above and not below  an occurrence of * then it is to the left of or to the right of that occurrence of *. 

Each of the selected/boxed marks occurring in the following assemblies is not to the left of and not to the right of of the occurrence of *.


Notice that when a mark is not to the left of and not to the right of an occurrence of * then it is above or below that occurrence of *.

Finally notice that any mark is in exactly one of the naive spatial relations, introduced here, to another mark in an assembly.

11/25/14

Some Tweet-a-Programs

You can tweet Mathematica code to @wolframtap and they will return the result! It's a great challenge to see what you can do with so few characters. Here is some of the code I submitted:

11/23/14

Different Occurrences of the Same Type of Assembly

Just as marks can look like each other so can assemblies of marks. When two marks look like each other we say they are of the same type. When we have defined a type of mark, usually by giving a canonical example of a mark of that type, we can identify and create new occurrences of that type of mark.

Here are some occurrences of the same type of assembly :


When there are only a few marks in a pair of assemblies it can be easy to identify correctly whether they are both occurrences of the same type of assembly or not. As the number of marks occurring in a pair of assemblies increases it becomes more and more difficult to identify with certainty whether they are of the same type. For example, are these assemblies of the same type? That is, are they similar to each other in the same way that a pair of marks are similar to each other when they look like each other?



In order to use assemblies and marks effectively and efficiently it must be possible to decide, with certainty, whether any pair of assemblies or marks look like each other and are, consequently, of the same type. Though it may be obvious that being able to clearly and exactly identify assemblies of the same type is desirable in practice, it is common in everyday life to ignore such details in favor of an approximate or tentative certainty that a pair of given assemblies are "mostly" of the same type. This vagueness is very interesting as it seems to be an essential part of the human thought process, but it is difficult, if not impossible, to deal with it on a formal level at this point in our description of math and physics. Furthermore, it is possible, to consider assemblies with a known structure and in this way approach the problem of identifying the type of an assembly with absolute certainty.

11/21/14

Events of Addition

The code below was used to construct these events of addition.




The idea is that a gif is used to represent a sequence of events. Ultimately, the act of addition is learned by studying the basic events of addition (addition of single digit numerals), and extending that procedure via a naive procedural and spatial intuition. Students learn to add by observing events of addition and becoming familiar with the form of an additive sequence of events. Later, in more abstract mathematics, a clever student might discover the principles which govern these forms so that they might prove such forms of sequences of events serve the relevant function.