bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] scalar/array


From: enztec
Subject: Re: [Bug-apl] scalar/array
Date: Fri, 3 Mar 2017 14:57:00 -0700

On Fri, 3 Mar 2017 20:45:45 +0100
Juergen Sauermann <address@hidden> wrote:

> Hi,
> 

what is the reason? do you know their reasoning

cause   1  is 1 element   and 1 2 3 is 3 elements   so   ⍴ 1 2 3   is 3    and  
⍴ 1  should have been 1   

I never understood their reasoning or how it negatively affected anything else 
- it must have been in the implementation that they had couldn't apply 
vector/array code to just one element so they did it this way
i think like the char type vs array type   but     you can have an array of 1 
element (in c and fpc anyway)


> I believe the reason why 'a' is scalar and 'abc' is not is the same as why 1 
> is a scalar and 1 2 3 is not.
> 
> It is very consistent, but often very inconvenient. And in practice it is 
> often a pitfall for the unaware programmer.
> I fooled myself a couple of times and then decided to introduce "a" which 
> avoids the problems with 'a'.
> 
> Before "a" you had to (,'a') or ,'a' if circumstances allowed (introducing 
> other traps, of course).
> 
> /// Jürgen
> 
> 
> On 03/03/2017 06:57 PM, address@hidden wrote:
> thank you - fantastic ...it sure 'fixes' the inconsistency     i had no idea 
> about "a"
> 
> I saw the use of " only in the FILE_IO   "r"  in the apl.html    but thought 
> that was related to just fopen/bash/c syntax
> 
> ---
> 
> Do you know the 'details' about why iverson did this to begin with?
> 
> How did you deal with scalar 'a' before the "a" in gnuap? 
> 
> didn't you have 'wasted code'  to deal with the following   to deal with 
> scalar 'a'
> 
>       ⍴'a'
> 
>       ''=⍴'a'
> 
>       ⍴⍴'a'
> 0
> 
> ---
> 
> the video in case you hadn't seen it
> 
> # APL 1991 Conference.mpg   1 hour, 50 minutes
> https://www.youtube.com/watch?v=uZOZYYPmUnM
> 
> ---
> 
> On Sat, 4 Mar 2017 01:37:18 +0800
> Elias Mårtenson <address@hidden> wrote:
> 
> In GNU APL, try this instead :
> 
> "a"[1]
> 
> The reason this seems inconsistent is because single quote is used to
> define a string, i.e. an array of characters. Except the case where there
> is only a single  character, in which case it represents a scalar
> character.
> 
> GNU APL allows you to use double quote instead which doesn't have this
> inconsistency.
> 
> That should make things a bit more clear, I hope.
> 
> Regards,
> Elias
> 
> On 4 Mar 2017 01:29, <address@hidden> wrote:
> 
> 
> i just watched a great video on apl   and this was discussed    i still
> don't know what the harm/problem would be if instead of returning 'nothing'
> 
>       ⍴'a'                 why doesn't it return 1   - there is something
> there    please don't mention scalar i know all about it - but to me this
> has always been an inconsistency in apl that made no sense to me
> 
>       ⍴'aa'               the ,   isn't required in   ⍴,'aa'    to be
> consistent ??
> 2
>       ⍴,'a'
> 1
> 
> 
>       'a'[1]
> RANK ERROR
>       'a'[1]
>       ^  ^
>       'ab'[1]
> a
>       (,'a')[1]
> a
> 
> 
> 
> under what condition would   'a'[1]    returning 'a'  be a problem?
> 
> 
> 
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]