Language
J
This programming language may be used to instruct a computer to perform a task.
Official website
Execution method: Interpreted
Type safety: Safe
Type strength: Strong
Type checking: Dynamic
Lang tag(s): j
See Also:
Listed below are all of the tasks on Rosetta Code which have been solved using J.


the J language

J is a notational programming language designed for interactive use.

It is an array language; data is universally structured as rectangular arrays.

It is a functional language; creation and composition of functions is emphasized.

Object-module and imperative techniques are supported, but not required.

The J programming language was designed and developed by Ken Iverson and Roger Hui. It is a closely related successor to APL, also by Iverson which itself was a successor to the notation Ken Iverson used to teach his classes about computers in the 1950s.

Reading J

J is meant to be read with the aid of a computer. J sentences are single lines and trying variations and simplifications of an expression is common practice. The first step in understanding any J sentence is to understand the data you started with and the data which resulted. When learning how a J sentence works, you can also try simpler sentences which the same data or perhaps related data.

Unless you attend an institution which has made a J interpreter available to you through your web browser, if you want to see how J works you should probably install a copy of J. If you want to understand how to experiment with alternative expressions you should probably study some of its documentation.

For example, the phrase [code](+/ % #)[/code] finds the average of a list of numbers.

<lang J> (+/ % #) 1 2 3 2</lang>

To understand how this works, you might try working with simpler sentences and their variations.

<lang J> +/ 1 2 3 6

  +/4 5 6

15

  # 1 2 3

3

  # 2 3 4

3

  6 % 3

2

  15 % 3

5

  (+/ % #) 4 5 6

15</lang>

By themselves, these experiments mean nothing, but if you know that +/ was finding the sum of a list and # was finding the length of a list and that % was dividing the two quantities (and looks almost like one of the classical division symbols) then these experiments might help confirm that you have understood things properly.

J on RosettaCode

Discussion of the goals of the J community on RC and general guidelines for presenting J solutions takes place at House Style.


Jers on RosettaCode

try me

Want to try one of those cryptic J lines you see peppered through RC? Try pasting it into the online single-line J interpeter or the web interface for buubot (a Perl IRC bot which has a J evaluation mode: just prefix your line with jeval).

If you want to be a bit more interactive, and get some guidance from J gurus, you can join the actual J IRC channel on Freenode, #jsoftware. Buubot and several other J eval bots run there. If you don't have an IRC client you can try freenode's web interface (or just give it a quick spin). More details about the J IRC community is available.

If any of that piques your interest, and you want to explore a little more, you can download J and join the J forums.

Subcategories

This category has the following 3 subcategories, out of 3 total.

@

Pages in category "J"

The following 200 pages are in this category, out of 1,413 total.

(previous page) (next page)

A

(previous page) (next page)