Learning J

An Introduction to the J Programming Language

Roger Stokes

revised July 2013
   
   
   
About this Book
Table of Contents
Acknowledgments
Index
 
 
 

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

This book is also available in various formats from here

Please send comments and criticisms to the J Forum


Copyright © Roger Stokes 2013. This material may be freely reproduced, provided that acknowledgment is made.


ABOUT THIS BOOK

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

My hope is that the book will be useful 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 the examples very simple. 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 defined in the J Dictionary. The coverage of the core language is meant to be relatively complete, covering (eventually) most of the Dictionary.

Hence the book does not cover topics such as graphics, plotting, GUI, and database covered in the J User Guide, nor does it cover the J Application Library . I should make clear what the aims of the book are not: neither to teach principles of programming, 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 a basic 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.

All the examples have been executed with J701.


TABLE OF CONTENTS

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
Mathematical Functions

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
30: Sparse Arrays
31: Performance
32: Trees

Appendices

A1: Evaluating Expressions
A2: Collected Terminology
Index


Acknowledgments

I am grateful to readers of earlier drafts for encouragement and for valuable criticisms and suggestions.