Difference between revisions of "Implementation Comparisons"

From NARS2000
Jump to navigationJump to search
(Created page with "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: <ul...")
 
 
(One intermediate revision by the same user not shown)
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)