Learning J


(fifth draft, still incomplete)

About this Book Table of Contents Acknowledgements Recent Changes Feedback

J Software Home Page


ABOUT THIS BOOK

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 enjoy 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 organised 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.


Acknowledgements

(to be supplied)

TABLE OF CONTENTS

Part 1: Getting Acquainted
Part 2: Arrays
Part 3: Defining Functions: Verbs
Part 4: Defining Functions: Operators
Part 5: Structural Functions
Part 6: Numerical and Mathematical Functions
Part 7: Names and Objects
Part 8: Facilities
Part 9: Various
Appendices


Chapters with titles shown as links are in place. The others will be eventually.

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: Composition
9: Trains of Verbs
10: Bonding, Cases, Iteration
11: Explicit Verb Definition

Part 4: Defining Functions: Operators

12: Explicit Operators
13: Tacit Operators
14: Gerunds
15: Tacit From Explicit

Part 5: Structural Functions

16: Rearrangements
17: Patterns of Application
18: Sets and Classes

Part 6: Numerical and
Mathematical Functions

19: Numbers
20: Scalar 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: Conversions and Representations
28: Data Files
29: Global Parameters
30: Debug

Part 9: Various

31: Evaluating Expressions (in Slow Motion)

Appendices

A1: Catalog of Functions by Informal Name
A2: Catalog of Functions by Formal Name
A3: Collected Terminology


Recent Changes

Chapter 12 has been rewritten. Chapters 20, 21 and 26 are new in this draft.

Feedback

Please send comments and criticisms to [email protected]

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

last updated 8 Jan 2001