System Function NL: Difference between revisions

From NARS2000
Jump to navigationJump to search
m monadic example added
No edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<h1>Quad Name List - '''⎕NL''' &nbsp; &nbsp; (System Function)</h1>
==Monadic Function==
==Monadic Function==


Line 9: Line 11:
       <td></td>
       <td></td>
       <td></td>
       <td></td>
       <td>returns a character ''matrix'' of user '''function names''' and or '''variable names''' where <apll>R</apll> = 3 (function names) and or 2 (variable names).</td>
       <td>returns a character ''matrix'' of the names of '''variables''', '''functions''', '''operators''', etc. where <apll>R</apll> = 2 (variables), 3 (functions), 4 (operators), etc.</td>
     </tr>
     </tr>
     </table>
     </table>
Line 15: Line 17:
</tr>
</tr>
<tr>
<tr>
   <td><apll>R</apll> is either 2 (variable names) or 3 (function names) or 2 3 (both function and variable names).</td>
   <td><apll>R</apll> is an integer scalar or vector consisting of the name classes whose names should be returned in <apll>Z</apll>.  For a complete list of Name Classes, see the description of [[System_Function_NC|Quad Name Classification <apll>⎕NC</apll>]].</td>
</tr>
</tr>
<tr>
<tr>
Line 30: Line 32:
       ⍴⎕NL 3    ⍝ The shape of names list - 1st element returned(# rows) shows the "user Function Count" in the active workspace
       ⍴⎕NL 3    ⍝ The shape of names list - 1st element returned(# rows) shows the "user Function Count" in the active workspace
</pre>
</pre>
<hr width=50%>
List all APL Quad '''<apll>{quad}</apll> System Variables''' (per APL Standard):
<pre>
      ⎕NL 5
⎕alx   
⎕ct   
⎕dm   
⎕dt   
⎕elx   
⎕fc   
⎕feature
⎕fpc   
⎕ic   
⎕io   
⎕lx   
⎕pp   
⎕pr   
⎕pw   
⎕rl   
⎕sa   
⎕wsid 
</pre>
<hr width=50%>
List all APL Quad '''<apll>{quad}</apll> System Functions''' (per APL Standard):
<pre>
      ⎕NL 6
⎕a     
⎕at     
⎕av     
⎕cr     
⎕d     
⎕dl     
⎕dr     
⎕ea     
⎕ec     
⎕em     
⎕error 
⎕es     
⎕et     
⎕ex     
⎕fmt   
⎕fx     
⎕lc     
⎕mf     
⎕nappend
⎕nc     
⎕ncreate
⎕nerase 
⎕nl     
⎕nlock 
⎕nnames 
⎕nnums 
⎕nread 
⎕nrename
⎕nreplace
⎕nresize
⎕nsize 
⎕ntie   
⎕nuntie 
⎕sysid 
⎕sysver 
⎕t     
⎕tc     
⎕tcbel 
⎕tcbs   
⎕tcesc 
⎕tcff   
⎕tcht   
⎕tclf   
⎕tcnl   
⎕tcnul 
⎕tf     
⎕ts     
⎕ucs   
⎕vr     
⎕wa   
</pre>
<hr width=50%>
NARS has added additional features over and beyond APL's standard <apll>⎕NL</apll>. Magic Functions are in some ways for advanced APL programmers and or NARS developers - or anyone with a great idea to improve APL's functionality, see NARS Discussion Board on topics such as '''[http://nars2000.forumatic.com/viewforum.php?f=9 New Primitive Operators]'''.  To see all magic functions available in NARS use the following:
<pre>
      ⎕NL 23 24    ⍝ list all Magic Functions and Operators
#BoxFMT       
#Conform       
#DydConv       
#DydDnShoe     
#DydDomino     
#DydDotDot     
#DydEpsUnderbar
#DydIota       
#DydIotaUnderbar
#DydLRShoeUnd 
#DydRank       
#DydScan       
#DydScan1     
#DydUpShoe     
#IdnConv       
#IdnDot       
#IdnJotDot     
#MAD           
#MDIU         
#MEO           
#MI           
#MIO           
#MLRS         
#MLRSU         
#MM           
#MMUL         
#MonDnShoe     
#MonDomino     
#MonDot       
#MonDotAll     
#MonDotCr     
#MonDotMf     
#MonDotPerm   
#MonFMT       
#MonIota       
#MonRank       
#MonVR         
#MSD           
#MU           
#RoS2         
#RoS1L         
#RoS1R         
#SD           
      ⎕NL 23
#BoxFMT       
#Conform       
#DydDnShoe     
#DydDomino     
#DydDotDot     
#DydEpsUnderbar
#DydIota       
#DydIotaUnderbar
#DydLRShoeUnd 
#DydUpShoe     
#IdnDot       
#MAD           
#MDIU         
#MEO           
#MI           
#MIO           
#MLRS         
#MLRSU         
#MM           
#MMUL         
#MonDnShoe     
#MonDomino     
#MonDotAll     
#MonDotMf     
#MonDotPerm   
#MonFMT       
#MonIota       
#MonVR         
#MSD           
#MU           
#SD           
      ⎕NL 24
#DydConv 
#DydRank 
#DydScan 
#DydScan1
#IdnConv 
#IdnJotDot
#MonDot 
#MonDotCr
#MonRank 
#RoS2   
#RoS1L   
#RoS1R   
</pre>
Most magic functions are transparent to you the APL user since they implement APL symbol functionality; however, they '''<u>enhance APL's functionality</u>''', ref. [[System_Function_FMT|<apll>⎕FMT</apll>]].
<hr width=70%>


==Dyadic Function==
==Dyadic Function==
Line 41: Line 222:
       <td></td>
       <td></td>
       <td></td>
       <td></td>
       <td>returns a character ''matrix'' of user '''function names''' and or '''variable names''' where <apll>R</apll> = 3 (function names) and or 2 (variable names)..</td>
       <td>returns a character ''matrix'' of the names of user '''variables''', '''functions''', '''operators''', etc. where <apll>R = 2</apll> (variables), <apll>3</apll> (functions), <apll>4</apll> (operators), etc.</td>
     </tr>
     </tr>
     </table>
     </table>
Line 47: Line 228:
</tr>
</tr>
<tr>
<tr>
   <td><apll>R</apll> is either 2 (var names) or 3 (fns names) or 2 3 (both fns and vars).</td>
   <td><apll>R</apll> is one of more of <apll>2</apll> (variables), <apll>3</apll> (functions), <apll>2 3</apll> (both functions and variables), etc.  For a complete list of Name Classes, see the description of [[System_Function_NC|Quad Name Classification <apll>⎕NC</apll>]].</td>
</tr>
</tr>
<tr>
<tr>
   <td><apll>L</apll> is a '''letter''' or '''letters''' for LIMITING fns/var names list, i.e. which BEGIN with the letter(s) to show.</td>
   <td><apll>L</apll> is a '''letter''' or '''letters''' for limiting the names list, i.e. which begin with the letter(s) to show.</td>
</tr>
</tr>


Line 62: Line 243:
</pre>
</pre>


Function '''⎕NL may be used inside user functions''' whereas system commands )FNS and )VARS cannot be used inside a user function.
Function '''<apll>⎕NL</apll> may be used inside user functions''' whereas system commands <apll>)FNS</apll> and <apll>)VARS</apll> cannot be used inside a user function.
<br><br>
'''See Also: [[System_Function_NC|Quad Name Classification <apll>⎕NC</apll>]]'''<br>


{{SFDM|NL}}
{{SFDM|NL}}

Latest revision as of 19:27, 9 March 2019

Quad Name List - ⎕NL     (System Function)

Monadic Function

Z←⎕NL R returns a character matrix of the names of variables, functions, operators, etc. where R = 2 (variables), 3 (functions), 4 (operators), etc.
R is an integer scalar or vector consisting of the name classes whose names should be returned in Z. For a complete list of Name Classes, see the description of Quad Name Classification ⎕NC.
Z is a character matrix of user objects in the workspace, each row being a name in the workspace.


Quad Names List sample monadic calls:

      ⎕NL 3     ⍝ list function names in the active workspace
      ⎕NL 2     ⍝ list variable names in the active workspace
      ⎕NL 3 2   ⍝ list function AND variable names in the active workspace
      ⍴⎕NL 3    ⍝ The shape of names list - 1st element returned(# rows) shows the "user Function Count" in the active workspace

List all APL Quad ⎕ System Variables (per APL Standard):

      ⎕NL 5
⎕alx    
⎕ct     
⎕dm     
⎕dt     
⎕elx    
⎕fc     
⎕feature
⎕fpc    
⎕ic     
⎕io     
⎕lx     
⎕pp     
⎕pr     
⎕pw     
⎕rl     
⎕sa     
⎕wsid   

List all APL Quad ⎕ System Functions (per APL Standard):

      ⎕NL 6
⎕a       
⎕at      
⎕av      
⎕cr      
⎕d       
⎕dl      
⎕dr      
⎕ea      
⎕ec      
⎕em      
⎕error   
⎕es      
⎕et      
⎕ex      
⎕fmt     
⎕fx      
⎕lc      
⎕mf      
⎕nappend 
⎕nc      
⎕ncreate 
⎕nerase  
⎕nl      
⎕nlock   
⎕nnames  
⎕nnums   
⎕nread   
⎕nrename 
⎕nreplace
⎕nresize 
⎕nsize   
⎕ntie    
⎕nuntie  
⎕sysid   
⎕sysver  
⎕t       
⎕tc      
⎕tcbel   
⎕tcbs    
⎕tcesc   
⎕tcff    
⎕tcht    
⎕tclf    
⎕tcnl    
⎕tcnul   
⎕tf      
⎕ts      
⎕ucs     
⎕vr      
⎕wa     

NARS has added additional features over and beyond APL's standard ⎕NL. Magic Functions are in some ways for advanced APL programmers and or NARS developers - or anyone with a great idea to improve APL's functionality, see NARS Discussion Board on topics such as New Primitive Operators. To see all magic functions available in NARS use the following:

      ⎕NL 23 24     ⍝ list all Magic Functions and Operators
#BoxFMT         
#Conform        
#DydConv        
#DydDnShoe      
#DydDomino      
#DydDotDot      
#DydEpsUnderbar 
#DydIota        
#DydIotaUnderbar
#DydLRShoeUnd   
#DydRank        
#DydScan        
#DydScan1       
#DydUpShoe      
#IdnConv        
#IdnDot         
#IdnJotDot      
#MAD            
#MDIU           
#MEO            
#MI             
#MIO            
#MLRS           
#MLRSU          
#MM             
#MMUL           
#MonDnShoe      
#MonDomino      
#MonDot         
#MonDotAll      
#MonDotCr       
#MonDotMf       
#MonDotPerm     
#MonFMT         
#MonIota        
#MonRank        
#MonVR          
#MSD            
#MU             
#RoS2           
#RoS1L          
#RoS1R          
#SD             
      ⎕NL 23
#BoxFMT         
#Conform        
#DydDnShoe      
#DydDomino      
#DydDotDot      
#DydEpsUnderbar 
#DydIota        
#DydIotaUnderbar
#DydLRShoeUnd   
#DydUpShoe      
#IdnDot         
#MAD            
#MDIU           
#MEO            
#MI             
#MIO            
#MLRS           
#MLRSU          
#MM             
#MMUL           
#MonDnShoe      
#MonDomino      
#MonDotAll      
#MonDotMf       
#MonDotPerm     
#MonFMT         
#MonIota        
#MonVR          
#MSD            
#MU             
#SD             
      ⎕NL 24
#DydConv  
#DydRank  
#DydScan  
#DydScan1 
#IdnConv  
#IdnJotDot
#MonDot   
#MonDotCr 
#MonRank  
#RoS2     
#RoS1L    
#RoS1R    

Most magic functions are transparent to you the APL user since they implement APL symbol functionality; however, they enhance APL's functionality, ref. ⎕FMT.


Dyadic Function

Z←L ⎕NL R returns a character matrix of the names of user variables, functions, operators, etc. where R = 2 (variables), 3 (functions), 4 (operators), etc.
R is one of more of 2 (variables), 3 (functions), 2 3 (both functions and variables), etc. For a complete list of Name Classes, see the description of Quad Name Classification ⎕NC.
L is a letter or letters for limiting the names list, i.e. which begin with the letter(s) to show.


Quad Names List sample dyadic calls:

      "A" ⎕NL 3     ⍝ List all function names beginning with A.
      "M" ⎕NL 2     ⍝ List all variable names beginning with M.
      "AC" ⎕NL 3 2  ⍝ List all function AND variable names beginning with letter "A" and also letter "C".

Function ⎕NL may be used inside user functions whereas system commands )FNS and )VARS cannot be used inside a user function.

See Also: Quad Name Classification ⎕NC


Note: ⎕NL is available as both a monadic and dyadic form system function, you cannot assign a value to it.

System Variables (A value may be assigned to these except for ⎕DM)
⎕ALX ⎕CT ⎕DM ⎕DT ⎕ELX ⎕FC ⎕FEATURE ⎕FPC ⎕IC ⎕IO
⎕LR ⎕LX ⎕PP ⎕PR ⎕PW ⎕RL ⎕SA ⎕WSID
Niladic System Functions (a value cannot be assigned to these)
⎕A ⎕AV ⎕EM ⎕ET ⎕LC ⎕NNAMES ⎕NNUMS ⎕SI ⎕SYSID ⎕SYSVER
⎕T ⎕TC ⎕TCBEL ⎕TCBS ⎕TCESC ⎕TCFF ⎕TCHT ⎕TCLF ⎕TCNL ⎕TCNUL
⎕TS ⎕WA
Monadic or dyadic system functions (a value cannot be assigned to these)
⎕AT ⎕CR ⎕DC ⎕DFT ⎕DL ⎕DR ⎕EA ⎕EC ⎕ERROR ⎕ES
⎕EX ⎕FMT ⎕FX ⎕MF ⎕NAPPEND ⎕NC ⎕NCREATE ⎕NERASE ⎕NINFO ⎕NL
⎕NLOCK ⎕NREAD ⎕NRENAME ⎕NREPLACE ⎕NRESIZE ⎕NSIZE ⎕NTIE ⎕NUNTIE ⎕STOP ⎕TF
⎕TRACE ⎕UCS ⎕VR
Note that quad functions and variables (except for the ⎕A family of functions) are case insensitive


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 , . /
{{#ifeq:0|4||title="match" style="border-width:thick; border-color:blue; background-color:yellow;"|≡ {{#ifeq:0|7||title="iota" style="border-width:thick; border-color:blue; background-color:yellow;" |⍳ {{#ifeq:0|9||title="slash" style="border-width:thick; border-color:blue; background-color:yellow;" |/ {{#ifeq:0|11||title="diamond" style="border-width:thick; border-color:blue; background-color:yellow;" |⋄ {{#switch: 0
NARS 2000 Lang
Tool
Bar

{{#ifeq:0|1||title="assign" style="border-width:thick; border-color:blue; background-color:yellow;" |←

→ bgcolor=cyan title="assign" |← → }}

{{#ifeq:0|2||title="plus" style="border-width:thick; border-color:blue; background-color:yellow;" |+

- × ÷ * ⍟ ⌹ ○ ! ? √ bgcolor=cyan title="plus" |+ - × ÷ * ⍟ ⌹ ○ ! ? √ }}

{{#ifeq:0|3||title="mod" style="border-width:thick; border-color:blue; background-color:yellow;" ||

⌈ ⌊ ⊥ ⊤ ⊣ ⊢
⌈ ⌊ ⊥ ⊤ ⊣ ⊢
≢ < ≤ = ≥ > ≠ bgcolor=cyan title="match" |≡ ≢ < ≤ = ≥ > ≠ }}

{{#ifeq:0|5||title="down caret" style="border-width:thick; border-color:blue; background-color:yellow;" |∨

∧ ⍱ ⍲ bgcolor=cyan title="down caret" |∨ ∧ ⍱ ⍲ }}

{{#ifeq:0|6||title="take" style="border-width:thick; border-color:blue; background-color:yellow;" |↑

↓ ⊂ ⊃ ⌷ ⍋ ⍒
↓ ⊂ ⊃ ⌷ ⍋ ⍒
∊ ⍸ ⍷ ∪ ∩ ⊆ ⊇ ~ § π .. bgcolor=cyan title="iota" |⍳ ∊ ⍸ ⍷ ∪ ∩ ⊆ ⊇ ~ § π .. }}

{{#ifeq:0|8||title="comma" style="border-width:thick; border-color:blue; background-color:yellow;" |,

⍪ ⍴ ⌽ ⊖ ⍉
⍪ ⍴ ⌽ ⊖ ⍉
\ ⌿ ⍀ ⊙ ¨ ⍨ ⍤ ⍡ ⍥ ⍦ . ∘ ⍠ ‼ ⌻ ∂ ∫ bgcolor=cyan title="slash" |/ \ ⌿ ⍀ ⊙ ¨ ⍨ ⍤ ⍣ ⍡ ⍥ ⍦ . ∘ ⍠ ‼ ⌻ ∂ ∫ }}

{{#ifeq:0|10||title="quotequad" style="border-width:thick; border-color:blue; background-color:yellow;" |⍞

⎕ ⍎ ⍕
⎕ ⍎ ⍕
⍝ ∇ ∆ ⍙ _ ⍺ ⍵ bgcolor=cyan title="diamond" |⋄ ⍝ ∇ ∆ ⍙ _ ⍺ ⍵ }}

{{#ifeq:0|12||title="neg" style="border-width:thick; border-color:blue; background-color:yellow;" |¯

⍬ ∞ title="neg" |¯ ⍬ ∞ ∅
colspan=8 |Second Row i j k a b e g p r v x z colspan=8 |Second Row i j k a b e g p r v x z colspan=8 |Second Row i j k a b e g p r v x z colspan=6 |Second Row i j k i j k l g p r v x

}}

{{#ifeq:0|0| |}}