Category:J

Revision as of 13:28, 1 September 2010 by Rdm (talk | contribs)
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 (but regular)
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 -- or you can try one of the "try me" links, below. If you want to understand how to experiment with alternative expressions you should probably study some of its documentation.

For example, the phrase (+/ % #) 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

5</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 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)