Intro02


2. Ambivalence


Cover the comments on the right and provide your own.

   7-5                        The function in the sentence 7-5 applies to two 
2                             arguments to perform subtraction, but in the
   -5                         sentence -5 it applies to a single argument to
_5                            perform negation.
                              Adopting from chemistry the term valence, we
                              say that the symbol - is ambivalent, its effective
   7%5                        binding power being determined by context.
1.4
   %5                         The ambivalence of - is familiar in arithmetic;
0.2                           it is here extended to other functions.
   3^2
9
   ^2                         Exponential (that is, 2.71828^2)
7.38906
   a=: i. 5                   The function integer or integer list
   a
0 1 2 3 4                     List or vector
   a i. 3 1                   The function index or index of
3 1
   b=: 'Canada'               Enclosing quotes denote literal characters
   b i. 'da'
4 1
   $ a                        Shape function
5
   3 4 $ a                    Reshape function
0 1 2 3                       Table or matrix
4 0 1 2
3 4 0 1
   3 4 $ b
Cana
daCa
nada
   %a                         Functions apply to lists
_ 1 0.5 0.333333 0.25         The symbol _ alone denotes infinity


Exercises

2.1   Enter the following sentences (and perhaps related sentences
using different arguments), observe the results, and state what the two cases
(monadic and dyadic) of each function do:

   a=: 3 1 4 1 5 9
   b=: 'Canada'
   #a
   1 0 1 0 1 3 # a
   1 0 1 0 1 3 # b
   /: a
   /: b
   a /: a
   a /: b
   b /: a
   b /: b
   c=: 'can''t'
   c
   #c
   c /: c
2.2   Make a summary table of the functions used thus far.
Then compare it with the following table (in which a bullet
separates the monadic case from the dyadic, as in Negate • Subtract):

                                    .               :        
+ • Add • Or
- Negate • Subtract
* • Times • And
% Reciprocal • Divide
^ Exponential • Power • Log
< • Less Than • Lessor Of
> • Greater Than • Greater Of
= • Equals Is (Copula)
i Integers • Index Of    
$ Shape • Reshape
/ Grade • Sort
# Number Of Items • Replicate


2.3   Try to fill some of the gaps in the table of Exercise 2.2
by experimenting on the computer with appropriate expressions.
For example, enter ^.10 and ^. 2.71828
to determine the missing (monadic) case of ^. and
enter %: 4 and %: -4 and +%: -4
to determine the case of % followed by a colon.


However, do not waste time on matters (such as, perhaps,
complex numbers or the boxed results produced by the
monad <) that are still beyond your grasp;
it may be better to return to them after working through later sections.
Note that the effects of certain functions become evident
only when applied to arguments other than positive integers:
try <.1 2 3 4 and <.3.4 5.2 3.6
to determine the effect of the monad <. .

 
2.4   If b=: 3.4 5.2 3.6 , then <.b
yields the argument b rounded down to the nearest integer.
Write and test a sentence that rounds the argument b to the
nearest integer.


Answer: <.(b+0.5) or <.b+0.5
or <.b+1r2

 
2.5   Enter 2 4 3 $ i. 5 to see an example of a
rank 3 array or report
(for two years of four quarters of three months each).

 
2.6   Enter ?9 repeatedly and state what the
function ? does. Then enter t=: ?3 5 $ 9 to
make a table for use in further experiments.


Answer: ? is a (pseudo-) random number generator; ?n
produces an element from the population i.n