Rho: Difference between revisions

From NARS2000
Jump to navigationJump to search
(expanded examples)
Line 12: Line 12:
Rho may be used as a [[monadic]] or [[dyadic]] operator, depending on the functionality desired. Used monadically with the argument to the right returns the '''shape''' of the argument. Used dyadically, the argument on the left is used to '''reshape''' the argument on the right.
Rho may be used as a [[monadic]] or [[dyadic]] operator, depending on the functionality desired. Used monadically with the argument to the right returns the '''shape''' of the argument. Used dyadically, the argument on the left is used to '''reshape''' the argument on the right.


==Shape==
==Shape - Monadic {rho}==
The symbol {rho} used monadically with no left argument returns the shape of the argument to the right, i.e. the size or dimensions of a scalar, string, vector, array or matrix. Shape returns null for a scalar or a single character, it returns 0 for a null string, the length of a string of at least two characters, the number of elements of an array or vector, and the number of elements of a matrix.
<big>Symbol '''{rho}''' when used '''monadically''' (no left argument) returns the '''shape of {rho}'s right argument''', i.e. the size or dimensions of a scalar, string, vector, array or matrix. Shape returns null for a scalar or a single character, it returns 0 for a null string, the length of a string of at least two characters, the number of elements of an array or vector, and the number of elements of a matrix.</big>
<pre>
      ⍴ 1 2 3 4 5 6    ⍝ Rho in the case of vectors represents a Count(# elements) function
6
      ⍴'abcdefg'      ⍝ Similarly with text strings(vector of chars), Rho represents a Count function
7
      ⍴ 1              ⍝ For a scalar right argument, Rho generates a null vector.


==Reshape==
 
      ⍴⍴ 1            ⍝ The shape of the shape(⍴⍴) of a scalar (because the shape of a scalar is a null) - generates zero.
0
 
      ⍴ 'a'            ⍝ Ditto for {numbers, integers, letters}, etc. - for scalar right arguments: Rho also generates a null vector.
 
 
      ⍴⍴ 'a'
0
      ⍴, 4.581        ⍝ Rho for a raveled(, or comma used) scalar(real num 4.581) - again correctly represents a Count(# elements) function
1
</pre>
 
==Reshape - Dyadic {rho}==
<big>'''{rho}''''s Left Argument(L) output-reshapes {rho}'s Right Argument(R).</big>
<table border="1" cellpadding="5" cellspacing="0" rules="none" summary="">
<table border="1" cellpadding="5" cellspacing="0" rules="none" summary="">
<tr>
<tr>
Line 24: Line 44:
       <td></td>
       <td></td>
       <td></td>
       <td></td>
       <td>returns an array of shape <apll>L</apll> whose items are taken from <apll>R</apll> in row major order, repeated as necessary.</td>
       <td>dyadic '''{rho}''' returns an array of shape <apll>L</apll> whose items are taken from <apll>R</apll> in row major order, repeated as necessary.</td>
     </tr>
     </tr>
     </table>
     </table>
Line 37: Line 57:
</table>
</table>
<br />
<br />
<p>For example, in origin-1</p>
<p>For example, in origin 1(where ⎕IO=1)</p>


<apll>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2 3⍴⍳6<br />
<apll>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2 3⍴⍳6<br />

Revision as of 01:12, 2 August 2015


⍴ — Shape or Reshape — Keystroke ALT+r — Character 9076 or x2374

APLKB-Rho.png


Note: This is ALT+r; ALT+SHIFT+R will generate the symbol root (√).

Rho may be used as a monadic or dyadic operator, depending on the functionality desired. Used monadically with the argument to the right returns the shape of the argument. Used dyadically, the argument on the left is used to reshape the argument on the right.

Shape - Monadic ⍴

Symbol when used monadically (no left argument) returns the shape of ⍴'s right argument, i.e. the size or dimensions of a scalar, string, vector, array or matrix. Shape returns null for a scalar or a single character, it returns 0 for a null string, the length of a string of at least two characters, the number of elements of an array or vector, and the number of elements of a matrix.

      ⍴ 1 2 3 4 5 6    ⍝ Rho in the case of vectors represents a Count(# elements) function
6
      ⍴'abcdefg'       ⍝ Similarly with text strings(vector of chars), Rho represents a Count function
7
      ⍴ 1              ⍝ For a scalar right argument, Rho generates a null vector.


      ⍴⍴ 1             ⍝ The shape of the shape(⍴⍴) of a scalar (because the shape of a scalar is a null) - generates zero.
0

      ⍴ 'a'            ⍝ Ditto for {numbers, integers, letters}, etc. - for scalar right arguments: Rho also generates a null vector.


      ⍴⍴ 'a'
0
      ⍴, 4.581        ⍝ Rho for a raveled(, or comma used) scalar(real num 4.581) - again correctly represents a Count(# elements) function
1

Reshape - Dyadic ⍴

⍴'s Left Argument(L) output-reshapes ⍴'s Right Argument(R).

Z←L⍴R dyadic returns an array of shape L whose items are taken from R in row major order, repeated as necessary.
L is a scalar or vector of non-negative integers, and R is an arbitrary array.
If the right argument is empty, the result consists of ×/⍴L copies of the fill item of R.


For example, in origin 1(where ⎕IO=1)

      2 3⍴⍳6
 1 2 3
 4 5 6
      2 3⍴⍳0
 0 0 0
 0 0 0

The idea for the latter enhancement was taken from Dyalog APL.


See Also
System Commands System Variables and Functions Operators


Keyboard
A+S
Alt ¨ ¯ < > × ÷
Sh ~ ! @ # $ % ^ & * ( ) _ +
Key ` 1 2 3 4 5 6 7 8 9 0 - =
A+S
Alt ? § π
Sh Q W E R T Y U I O P { } |
Key q w e r t y u i o p [ ] \
A+S
Alt
Sh A S D F G H J K L : "
Key a s d f g h j k l ; '
A+S χ
Alt
Sh Z X C V B N M < > ?
Key z x c v b n m , . /
NARS 2000 Lang
Tool
Bar
+ - × ÷ * ! ? |
< = >
~ § π .. ,
/ \ ¨ .
_ ¯
Second Row i j k i j k l g p r v x

[[Category:Mouse Group {{{1}}}|{{{2}}}]]

See Also

NARS 2000 Lang
Tool
Bar
+ - × ÷ * ! ? |
< = >
~ § π .. ,
/ \ ¨ .
_ ¯
Second Row i j k i j k l g p r v x