Difference between revisions of "Implementation Comparisons"

From NARS2000
Jump to navigationJump to search
m (WikiSysop moved page Implementation Differences to Implementation Comparisons without leaving a redirect: Expanded meaning)
 
Line 1: Line 1:
 +
==Features Missing in NARS2000==
 +
 +
<ul>
 +
  <li>Selective Assignment:  The syntax of <apll>(...)←...</apll> where the code inside of the parens selects elements of a named array is missing from NARS2000.  It may be emulated by using Indexed Assignment:
 +
{|
 +
|-
 +
|Dyalog:||<apll>((⊂ L)⌷R)←...</apll>
 +
|-
 +
|NARS2000:||<apll>R[L]←...</apll>
 +
|}
 +
</li>
 +
</ul>
 +
 +
==Differences With Dyalog APL==
 +
 
Different designers make different choices.  Neither should be considered Good or Bad, just different.  Here are a few of the differences between Dyalog APL and NARS2000:
 
Different designers make different choices.  Neither should be considered Good or Bad, just different.  Here are a few of the differences between Dyalog APL and NARS2000:
  

Latest revision as of 17:58, 7 April 2020

Features Missing in NARS2000

  • Selective Assignment: The syntax of (...)←... where the code inside of the parens selects elements of a named array is missing from NARS2000. It may be emulated by using Indexed Assignment:
    Dyalog: ((⊂ L)⌷R)←...
    NARS2000: R[L]←...

Differences With Dyalog APL

Different designers make different choices. Neither should be considered Good or Bad, just different. Here are a few of the differences between Dyalog APL and NARS2000:

  • Multi-name assignment in Dyalog does not require parens, whereas NARS2000 does
    Dyalog: i j ←⍺
    NARS2000: (i j)←⍺
  • A Train assigned to a name does not require parens in Dyalog, but are required in NARS2000
    Dyalog: e← -phi grad
    NARS2000: e←(-phi grad)
  • Dyalog's definition of the monadic function depends upon the value of ⎕ML (⎕ML<2 is Mix, ⎕ML≥2 is First), whereas NARS2000 uses the monadic function for Mix and for First
    Dyalog: csc←{sign↑⍳n⍴n←⍴⍵}
    NARS2000: csc←{sign⊃⍳n⍴n←⍴⍵}
  • I'm not sure about Dyalog, but I know that NARS2000 does not have the concept of Rank well-integrated into its implementation.
  • The Binding Strength Rules are different. In NARS2000, a numeric strand as the right operand to an operator must be enclosed in parens
    Dyalog: ⍤ 0 1
    NARS2000: ⍤(0 1)