Essays and Articles for Newcomers

From J Wiki
Jump to navigation Jump to search


⬅ Return to 'Welcome to J'

Motivational

Why Choose to Learn J? - If you are not sure, this may convince you.
Describing J in a Tweet - Describe J in 240 characters. Written when Twitter was still Twitter.
Joey Tuttle's Benchmark of J - How fast can you find the inverse of a 50X50 matrix? About 100,000,000 times faster than you used to!

Foundational

The Essentials of J - Ken Iverson's presentation to the 1996 APL Conference.
English Grammar and J - Roger Hui traces the development of English grammar notation in the Array Languages.
Teaching J Syntax - J is not Java, an exploration of some of the differences.
Starting out - One author's approach to learning J.
Order of Execution - The order things is done in J is very consistent.
Data Structures - A look at some of data structures and how they could be represented in J.
Unpuzzling J Expressions - Having trouble deciphering J? This approach might help.
Array Manipulation - There are so many ways to manipulate arrays in J.
A Fine Line - A gentle introduction to cells, frames and rank.
Rank - A more traditional approach to explaining Rank.
Use of Rank in J - A much deeper look at Rank, one of the most powerful concepts in J.
Use of Negative Rank in J - Negative rank can expose even more power in array manipulation.
Locales - Call them Name Spaces or Classes. Locales are J's way of creating modular code.
Debugging Control Errors - One approach to figuring out where your control structures are breaking down.

Primitives

Identity Matrix - There are so many ways to create the Identity Matrix.
Inner Products - Some interesting uses of the Inner Product
Reflexive Adverb - Who knew that using the same value for both arguments could be so useful?
Insert - There are so many ways that the Insert adverb can be used.
Under - Once you see what Under can do you'll wonder how you did without it.
Memoization - Maybe a little advanced, but a good tool for improving program efficiency.
Indeterminate - It has a purpose and the best practice is to get rid of it as soon as possible.
Trains - Trains are a foundational combinator in J.
Sorting versus Grading - A deeper dive into ordering in J.
Odometer - So many ways to create odometers.
Permutations - The many ways to group items.
Permutation Index - Ordering the many permutations.
Inverse Permutation - Creating a function that undoes the permutation.
Do While - an example of the power of tacit J.

Tutorials

A Taste of J - Take a quick look at some of the things that J can do.
Exploring Kadane's Algorithm - A very deep look at how to approach Kadane's Algorithm in J.
Linear Programming in J - The simplex method of Linear Programming in J.
Converting Tacit to Explicit - An introduction to Tacit programming and conversion to Explicit forms.
J in 5 minutes - A quick look at how J can be used for calculating annuities.
Insights into Quicksort - Roger Hui explains how J can express Quicksort with economy and power.
Sequential State Machine Introduction - Sequential State Machines are powerful parsing tools.

Math

Pascal's Triangle - Several ways to create Pascal's Triangle.
Hamming Numbers - Using J to find the Hamming numbers.
Levenshtein Distance - Changing one string to another in minimum steps.
Longest Increasing Subsequence - Henry Rich's solution in fully commented form.
Polynomials Intersection - A straightforward explanation of finding polynomial intersections.
Primes Less Than n - There are many ways to find the primes less than a given integer in J.
Repeated Squaring - Use squaring to calculate arbitrary powers of integers.
RSA Challenge - Cryptography and the classic Martin Gardner challenge of RSA.
Power Sets - Several approaches to building Power Sets.
Partitions - Generating partitions needs to be done carefully.
Set Partitions - A set partition is a collection of disjoint subsets whose union is the whole set.
Minors of Array - A minor of size one less than the size of a matrix obtains by removing row i and column j using Outfix (\.)
Tree Display - Building trees in an array language.

Strings

Text Formatting - Formatting text to specified number of characters per line.
Substring Replacement - Replacing substrings that do not overlap with a fix for overlapping occurrences.
Non-Overlapping Substrings - Making sure that valid substrings do not overlap.
Parentheses Matching - A J way to check that your parentheses match.

Puzzles and Games

Knapsack Problem - A classic problem of fitting the most stuff into a knapsack.
The Game of Moo - Moo is also known as Mastermind.
Roman Numerals - Converting Arabic numerals into Roman Numerals and back again.