(This illustrates something of the mnemonic character of J's tokens, and some of the quandaries imposed by the use of ASCII.) Defining a J function named codice_6 to calculate the average of a list of numbers yields: This is a test execution of the function:  codice_7counts the number of items in the array.codice_8sums the items of the array.codice_9divides the sum by the number of items. Above, "avg" is defined using a train of three verbs (codice_10, codice_11, and codice_12) termed a "fork". Specifically codice_13 is the same as codice_14 which shows some of the power of J. (Here V0, V1, and V2 denote verbs and Ny denotes a noun.) Some examples of using codice_6:  Rank is a crucial concept in J. Its significance in J is similar to the significance of codice_16 in SQL and of codice_17 in C.  Implementing quicksort, from the J Dictionary yields:  The following is an implementation of quicksort demonstrating tacit programming. The later involves composing functions together and not referring explicitly to any variables. J's support for "forks" and "hooks" dictates rules on how arguments applied to this function will be applied to its component functions. Sorting in J is usually accomplished using the built-in (primitive) verbs codice_18 (sort up) and codice_19 (sort down). User-defined sorts such as quicksort, above, typically are for illustration only. The following example demonstrates the usage of the self-reference verb codice_20 to recursively calculate fibonacci numbers: 1:`($:@-&2+$:@&2) This recursion can also be accomplished by referring to the verb by name, although this is of course only possible if the verb is named: fibonacci=:1:`(fibonacci@-&2+fibonacci@&2) The following expression exhibits pi with n digits and demonstrates the extended precision abilities of J:  A program or routine - something that takes data as input and produces data as output - is called a "verb". J has a rich set of predefined verbs, all of which work on multiple data types automatically: for example, the verb i. searches within arrays of any size to find matches: 0 1 0 3 User programs can be named and used wherever primitives are allowed.