Binding Strength: Difference between revisions
From NARS2000
Jump to navigationJump to search
(→Table) |
|||
Line 47: | Line 47: | ||
* A dyadic operator written as <apll>… dop 1 2 3</apll> is interpreted as having a right operand ('''short''' right scope) of <apll>1</apll> and a right argument of <apll>2 3</apll>. | * A dyadic operator written as <apll>… dop 1 2 3</apll> is interpreted as having a right operand ('''short''' right scope) of <apll>1</apll> and a right argument of <apll>2 3</apll>. | ||
* A hyperator written as <apll>1 2 3 mhmo</apll> is interpreted as having a left hyperand ('''short''' left scope) of <apll>3</apll> and a left operand ('''long''' left scope) of <apll>1 2</apll>. | * A hyperator written as either <apll>1 2 3 mhmo</apll> or <apll>1 2 3 mhdo …</apll> is interpreted as having a left hyperand ('''short''' left scope) of <apll>3</apll> and a left operand ('''long''' left scope) of <apll>1 2</apll>. | ||
* A dyadic hyperator written as <apll>… dhmo 1 2 3</apll> is interpreted as having a right hyperand ('''short''' right scope) of <apll>1</apll> and a right argument of <apll>2 3</apll>. | * A dyadic hyperator written as <apll>… dhmo 1 2 3</apll> is interpreted as having a right hyperand ('''short''' right scope) of <apll>1</apll> and a right argument of <apll>2 3</apll>. | ||
* A dyadic hyperator written as <apll>… dhdo 1 2 3</apll> is interpreted as having a right hyperand ('''short''' right scope) of <apll>1</apll>, a right operand ('''short''' right scope) of <apll>2</apll>, and a right argument of <apll>3</apll>. | * A dyadic hyperator written as <apll>… dhdo 1 2 3</apll> is interpreted as having a right hyperand ('''short''' right scope) of <apll>1</apll>, a right operand ('''short''' right scope) of <apll>2</apll>, and a right argument of <apll>3</apll>. | ||
To reduce confusion, use parentheses such as <apll>(LO (LH dhdo 1) 2) 3</apll>. | To reduce confusion, use parentheses such as <apll>(LO (LH dhdo 1) 2) 3</apll>. | ||
Abbreviations: | |||
* <apll>dop</apll> Dyadic Operator | |||
* <apll>mhmo</apll> Monadic Hyperand Monadic Operand Hyperator | |||
* <apll>mhdo</apll> Monadic Hyperand Dyadic Operand ... | |||
* <apll>dhmo</apll> Dyadic Hyperand Monadic Operand ... | |||
* <apll>dhdo</apll> Dyadic Hyperand Dyadic Operand ... |
Revision as of 09:54, 22 March 2019
Table
The rules for how Variables, Functions, Operators, Hyperators and other syntactic elements combine are covered in the following table:
# | Category | Description | Example |
---|---|---|---|
12: | Brackets left | Brackets to what is on their left | "? […]" |
11: | Specification left | Left arrow to what is on its left | "? ←" |
10: | Right hyperand, right operand | Dyadic hyperator to its right hyperand | "HYP ?" |
9: | Right hyperand, left operand | Dyadic hyperator to its right hyperand | "HYP ?" |
8: | Left hyperand, right operand | Hyperator to its left hyperand | "? HYP" |
7: | Left hyperand, left operand | Hyperator to its left hyperand | "? HYP" |
6: | Right operand | Dyadic operator to its right operand | "DOP ?" |
5: | Vector notation | Array to an array | "A A" |
4: | Left operand | Operator to its left operand | "? MOP" |
4: | Train right | Train to its right paren | "… F)" |
3: | Train left | Train to its left paren | "(F …" |
3: | Left argument | Function to its left argument | "A F" |
2: | Right argument | Function to its right argument | "F A" |
1: | Specification right | Left arrow to what is on its right | "← ?" |
0: | Brackets right | Brackets to what is on their right | "[…] ?" |
One way to look at these rules is that if you are given three names and/or symbols, you can always tell whether the middle object binds to the left or right object.
Vector Notation
As the above table indicates, Vector Notation has a lower Binding Strength than both a right operand to its operator and either hyperand to its hyperator. One consequence of this is a change introduced in NARS2000 Version 0.5.10 w.r.t. Numeric Strands. In particular,
- A dyadic operator written as … dop 1 2 3 is interpreted as having a right operand (short right scope) of 1 and a right argument of 2 3.
- A hyperator written as either 1 2 3 mhmo or 1 2 3 mhdo … is interpreted as having a left hyperand (short left scope) of 3 and a left operand (long left scope) of 1 2.
- A dyadic hyperator written as … dhmo 1 2 3 is interpreted as having a right hyperand (short right scope) of 1 and a right argument of 2 3.
- A dyadic hyperator written as … dhdo 1 2 3 is interpreted as having a right hyperand (short right scope) of 1, a right operand (short right scope) of 2, and a right argument of 3.
To reduce confusion, use parentheses such as (LO (LH dhdo 1) 2) 3.
Abbreviations:
- dop Dyadic Operator
- mhmo Monadic Hyperand Monadic Operand Hyperator
- mhdo Monadic Hyperand Dyadic Operand ...
- dhmo Dyadic Hyperand Monadic Operand ...
- dhdo Dyadic Hyperand Dyadic Operand ...