Learning J | |

## Roger Stokes | |

eleventh draft, June 2006 | |

About this Book | |

Table of Contents | |

Acknowledgements | |

Recent Changes | |

Index | |

J software and documentation are available at | J Software Home Page |

This book is also available as a | single downloadable zip file |

Please send comments and criticisms to the | J Forum |

This book is meant to help the reader to learn the computer-programming language J.

The book is intended to be read with enjoyment by both the beginning programmer and the experienced programmer alike. The only prerequisite is an interest on the part of the reader in learning a programming language.

The emphasis is on making the J language accessible to a wide readership. Care is taken to introduce only one new idea at a time, to provide examples at every step, and to make examples so simple that the point can be grasped immediately. Even so, the experienced programmer will find much to appreciate in the radical simplicity and power of the J notation.

The scope of this book is the core J language common to the many implementations of J available on different computers. The coverage of the core language is meant to be relatively complete, covering (eventually) most of the J Dictionary.

Hence the book does not cover topics such as graphics, plotting, GUI, and database access covered in the J User Guide. It should also be stated what the aims of the book are not: neither to teach principles of programming as such, nor to study algorithms, or topics in mathematics or other subjects using J as a vehicle, nor to provide definitive reference material.

The book is organized as follows. Part 1 is an elementary introduction which touches on a variety of themes. The aim is to provide the reader, by the end of Part 1, with an overview and a general appreciation of the J language. The themes introduced in Part 1 are then developed in more depth and detail in the remainder of the book.

## Part 1: Getting Acquainted | 1: Basics 2: Lists and Tables 3: Defining Functions 4: Scripts and Explicit Functions |

## Part 2: Arrays | 5: Building Arrays 6: Indexing 7: Ranks |

## Part 3: Defining Functions: Verbs | 8: Composing Verbs 9: Trains of Verbs 10: Conditional and Other Forms 11: Tacit Verbs Concluded 12: Explicit Verbs |

## Part 4: Defining Functions: Operators | 13: Explicit Operators 14: Gerunds 15: Tacit Operators |

## Part 5: Structural Functions | 16: Rearrangements 17: Patterns of Application 18: Sets, Classes and Relations |

## Part 6: Numerical and
| 19: Numbers 20: Scalar Numerical Functions 21: Factors and Polynomials 22: Vectors and Matrices 23: Calculus |

## Part 7: Names and Objects | 24: Names and Locales 25: Object-Oriented Programming |

## Part 8: Facilities | 26: Script Files 27: Representations and Conversions 28: Data Files 29: Error Handling |

## Appendices |
A1: Evaluating Expressions A2: Collected Terminology Index |

The main changes in this eleventh draft are to bring the material into line with J601. All the examples have been executed with a beta version of J601.

Copyright © Roger Stokes 2006. This material may be freely reproduced, provided that this copyright notice, including this provision, is also reproduced.

>> << Ndx Usr Pri JfC LJ Phr Dic Rel Voc !: wd Help Learning J