[comp.lang.apl] DAGs for Hook, Fork, Compose, Atop, Dual

ljdickey@watmath.waterloo.edu (L.J.Dickey) (06/09/91)

I am learning more about the power of J, in particular, more about the
various compositions of functions that J makes easy, and it has helped
me to have at hand a page showing DAGs (Directed Acyclic Graphs) of
some of these.

It was a recent posting by Raul Rockwell about the difference between
f : '' and f@], and that prompted me to think that you, gentle reader,
might find these diagrams helpful, too.  So, included below is an ascii
representation of my chart.  If you find this helpful, then I am pleased.


|%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%|
|%|                                      |%|                                |%|
|%|                                      |%|                                |%|
|%|               FORK                   |%|             HOOK               |%|
|%|               f g h                  |%|             f g                |%|
|%|                                      |%|                                |%|
|%|   (f g h) y         x (f g h) y      |%|    (f g) y        x (f g) y    |%|
|%|                                      |%|                                |%|
|%|       g                  g           |%|       f               f        |%|
|%|      / \               /   \         |%|       |              / \       |%|
|%|     f   h             f      h       |%|       g             x   g      |%|
|%|     |   |            / \    / \      |%|       |                 |      |%|
|%|     y   y           x   y  x   y     |%|       y                 y      |%|
|%|                                      |%|                                |%|
|%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%|
|%|                                      |%|                                |%|
|%|                                      |%|                                |%|
|%|               ATOP                   |%|            COMPOSE             |%|
|%|               f @ g                  |%|             f & g              |%|
|%|                                      |%|                                |%|
|%|  (f @ g ) y        x ( f @ g ) y     |%|  (f & g ) y     x ( f & g ) y  |%|
|%|                                      |%|                                |%|
|%|      f                  f            |%|       f               f        |%|
|%|      |                  |            |%|       |              / \       |%|
|%|      g                  g            |%|       g             g   g      |%|
|%|      |                 / \           |%|       |             |   |      |%|
|%|      y                x   y          |%|       y             x   y      |%|
|%|                                      |%|                                |%|
|%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%|
|%|                                      |%|
|%|                                      |%|
|%|               DUAL                   |%|
|%|                                      |%|
|%|      f&.g  <---> (g^:_1) @ (f&g)     |%|
|%|                                      |%|
|%|               g^:_1                  |%|
|%|                 |                    |%|
|%|                 f                    |%|
|%|                / \                   |%|
|%|               g   g                  |%|
|%|               |   |                  |%|
|%|               x   y                  |%|
|%|                                      |%|
|%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%|