>> << Ndx Usr Pri Phr Dic Rel Voc !: wd Help Primer

# Verb definition

The art of programming lies not so much in using the primitives, as in defining your own verbs, tailored to your requirements. In defining your own verbs you are extending the language to build an application that solves a particular set of problems.

Let's assume that the problem is to convert temperatures between Fahrenheit and centigrade. You need to define a verb that does that.

The following is a definition of the verb centigrade that will convert its argument from a Fahrenheit value to a centigrade value.

       centigrade =. 3 : 0
    t1 =. y. - 32
    t2 =. t1 * 5
    t3 =. t2 % 9
    )

The font size in the above has been upped a bit to make it easier for you to type it exactly into the ijx window. At this point you want to do something that works, rather than deal with problems arising from typos, so transcribe it carefully.

In the ijx window enter the first line:

`centigrade =. 3 : 0`

Type it exactly as shown. There must be a blank between the 3 and the `:` . The 3 indicates that you are defining a verb and the 0 indicates that the definition is in the subsequent input lines.

After you enter the above line the cursor is at the left margin and has not been indented the three spaces as it normally is. This indicates that the system is waiting for you to enter the rest of the definition.

Type in the lines following the definition of centigrade as shown. They are at the left margin, and so look like they might have been displayed by the system, but in fact they are your entries of the lines required to define the verb.

The final line that contains just the ) ends this special definition input mode. After you enter this final line, the system again indents the three spaces indicating that it is ready to execute a sentence.

If you entered the definition correctly, you should be able to experiment with your new verb.

       centigrade 32
    0

       centigrade _40
    _40

       centigrade 212
    100

Let's look at the definition to understand how it works. The `y.` in the first sentence of the definition you type is the name of the argument of the verb. When you execute the verb with an argument the first line will subtract 32 from the argument and define `t1`. When the first line is finished, execution proceeds to the next line, which defines `t2` as the result of `t1` times 5. Execution proceeds to the next line and defines `t3` as `t2` divided by 9. There are no more lines, so the execution of the verb is finished. The result of the verb is the last result that was evaluated.

We used `3 : 0` to define the verb. The phrase verb define is equivalent and some find it easier to read. However, it hides information and we will use the `3 : 0` form.

       centrigrade =. verb define
    . . .
    )

>> << Ndx Usr Pri Phr Dic Rel Voc !: wd Help Primer