Hi,

In my mind I mostly think in "elements" - not rank or shape.

That is  "L-element OP R-element" . Where elements have an empty rank (scalar, ⊂..). And APL takes care of ranks, shapes and depth.

⍝ as you mentioned (and I had to remember):  'a' 'b' ≡ 'ab'
⍝ that is a vector of single chars is a char vector.

       (⊂ 1 2) /¨'a' 'b'  ⍝  (1 2/'a') (1 2/'b')
 aaa bbb

what I want:
        (1 2/¨'a') (1 2/¨'b')
  a aa    b bb

My initial puzle was ( and as you pointed out) a scalar and a one element vector are being treated equally.

in my expression
         (⊂1 2) (/¨) (,¨) 'ab'
I ignored that  (,¨) operates on 'ab' and that it does not return 'ab' element-wise


so this does the job:
      (⊂ 1 2) (/¨)¨(,¨)'ab'
  a aa    b bb

Thank you for your patience

Best regards
Hans-Peter


Am 27.11.20 um 10:26 schrieb Jay Foad:
I'm not sure what you're saying. Replicate does tolerate a scalar on
the right and treat it like a 1-element vector:

       (,6)/'a'
aaaaaa
       (,6)/,'a'
aaaaaa

Your examples are showing something different, where you're
introducing an extra level of nesting to the right argument but
without changing its rank or shape.

Jay.

On Thu, 26 Nov 2020 at 23:56, Hans-Peter Sorge
<hanspeterso...@netscape.net> wrote:
Hi Jay,

.. not quite:

        (,6)/'a'
aaaaaa

        (,6)/,¨'a'
   a a a a a a

        (,6)/'abc'
aaaaaabbbbbbcccccc

       (,6)/,¨'abc'
   a a a a a a b b b b b b c c c c c c

        (,6)/¨,¨'abc'
   aaaaaa bbbbbb cccccc

Hans-Peter

Am 26.11.20 um 16:24 schrieb Jay Foad:
Hi,

Here comes my irritation. Or some missing knowledge ....
⍝ 11 - if this is true ( from ⍝3 )
       (⊂1 2 3)/¨'ABC'
   AAAAAA BBBBBB CCCCCC

⍝ 12 - then this schould be different
        (⊂1 2 3)/¨,¨'ABC'
   AAAAAA BBBBBB CCCCCC
⍝ expected
    A AA AAA  B BB BBB  C CC CCC
I think they are the same because:
6/¨'abc'
6/¨,¨'abc'
are the same, because:
6/'a'
6/,'a'
are the same, because Replicate tolerates a scalar on the right and
treats it like a 1-element vector.

Jay.



Reply via email to