Conformability: Difference between revisions

Jump to navigation Jump to search
→‎Frame conformability: NARS2000 has singleton extension for frame conformability
(Roger's forum posts)
(→‎Frame conformability: NARS2000 has singleton extension for frame conformability)
 
(7 intermediate revisions by 2 users not shown)
Line 13: Line 13:
== Frame conformability ==
== Frame conformability ==


The [[Rank operator]] and [[function rank]] check for conformability not on the entire [[shape]]s of arguments, but only on their [[frame]]s. The same procedure applies to determine whether two frames conform, and if the function's result rank is known, then the result shape can be found by appending it to the shape obtained from conformability on the frames. Rather than copying [[elements]] of the extended argument to match the other one, [[cell]]s are copied.
{{main|Frame agreement}}


No language uses [[singleton extension]] for frame conformability: [[SHARP APL]] and [[J]] do not implement singleton extension, and [[Dyalog APL]] and [[A+]] have singleton extension for scalar dyadics but not for Rank. Of these, [[J]] and [[A+]] use [[leading axis agreement]] while SHARP and Dyalog use only empty-frame extension, the equivalent of scalar extension.
The [[Rank operator]] and [[function rank]] check for conformability not on the entire [[shape]]s of arguments, but only on their [[frame]]s. The same procedure applies to determine whether two frames conform, and if function <syntaxhighlight lang=apl inline>f</syntaxhighlight>'s result shape is known, then the result shape of <syntaxhighlight lang=apl inline>f⍤l r</syntaxhighlight> can be found by appending it to the shape obtained from conformability on the frames computed from [[Rank (operator)|ranks]] <syntaxhighlight lang=apl inline>l</syntaxhighlight> and <syntaxhighlight lang=apl inline>r</syntaxhighlight>. Rather than copying [[element]]s of the extended argument to match the other one, [[cell]]s are copied.
 
Frame conformability may not allow [[singleton extension]] even when ordinary conformability supports it: [[Dyalog APL]], [[SHARP APL]], and [[A+]] have singleton extension for scalar dyadics but not for Rank (and [[J]] doesn't implement singleton extension). Of these, [[J]] and [[A+]] use [[leading axis agreement]] while SHARP and Dyalog use only empty-frame extension, the equivalent of scalar extension. However, [[NARS2000]] implements Rank with singleton extension for frames.


== External links ==
== External links ==


* [https://forums.dyalog.com/viewtopic.php?f=30&t=1621 Scalar functions] and [https://forums.dyalog.com/viewtopic.php?f=30&t=1622 Tally and scalar functions] by [[Roger Hui]]
* [https://forums.dyalog.com/viewtopic.php?f=30&t=1621 Scalar functions] and [https://forums.dyalog.com/viewtopic.php?f=30&t=1622 Tally and scalar functions] by [[Roger Hui]]
{{APL features}}
{{APL features}}[[Category:Function characteristics]][[Category:Conformability]]

Navigation menu