The combination

  ($,)

has special code. If you remove one of the verbs from the hook, you lose the special code.

You can use $, to do Raul's job of discarding leading axes of 1:

   $ flattensingles =: (($,)~ (}.~ 1&(i.&0@:=))@$)  i. 1 1 2 3
2 3

Henry Rich

On 9/4/2012 2:55 PM, Peter B. Kessler wrote:
Henry Rich wrote:
  ''$,  ''
|length error

This one doesn't work when applied to an empty.  Sometimes that's
desirable.  The others work on empties.

Note that
   '' ($,) A

has the same result as

   '' $ , A

but the former version is backed by special code & doesn't actually do
the enfile.

Henry Rich

Does it make sense then to encapsulate this knowledge in a "firstOf" verb

        firstOfHook =: '' & ($ ,)        NB. Does this enfile?
        B + firstOfHook A            NB. Plus of B and the flatten of A.
     7 9 11

?  How strictly does one have to adhere to the  '' ($,) A  surface
syntax to avoid the enfile?

Or (because I find Hooks hard to read) as an At (or, in this case, I
could use Atop (@))

        firstOfAt =: (('' & $) @: ,)        NB. Does this enfile?
        B + firstOfAt A            NB. Plus of B and the flatten of A.
     7 9 11

Either of those gives me a monad that might be useful in its own right

        firstOfAt A                NB. Names make things easier to read.
     4

in case I was having trouble disentangling the monad on A from the dyad
with B in the original problem.

             ... peter

On 9/3/2012 4:00 AM, Linda Alvord wrote:
Thanks to all!

Kip Murray showed me that I am dealing with a noun that is a table
and not an atom! His solution  ,A  turns a list into an atom.

     ]A=:1 1$4
4
    ]C=:''
    ]B=:3 5 7
    ]B=:3 5 7
3 5 7

Two alternatives helped:

     B+A
|length error
|   B    +A
    B+{.@,A     NB. Bill Lam
7 8 9
    B+''$,AN    NB. Henry Rich
7 8 9
    B+{.,A
7 8 9

I add the third because I try to avoid  @  and I create the problem
most often by using  {

All work if the noun is empty.
    C+{.@,A
    C+''$,A
    C+{.,A

So this thread really should be called:  Table to Atom - First time
around.

Linda

-----Original Message-----
From: programming-boun...@forums.jsoftware.com
[mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Henry
Rich
Sent: Monday, September 03, 2012 1:16 AM
To: programm...@jsoftware.com
Subject: Re: [Jprogramming] Scalar to Vector - Yet again

The easiest way to make a scalar of an arbitrary noun is

     ''($,)A

which will work on anything except an empty A.

Henry Rich

On 9/2/2012 10:52 PM, Roger Hui wrote:
You are (probably) trying to undo years of conditioning in APL, which
has the misguided "singleton extension":  In APL,
     2 3 4 + (?n⍴1)⍴5
worked.  Singleton extension is undesirable because it complicates the
rules for the rank operator.

It feels wrong to have to do things like this every time I want to
use the result of a previous computation called  A .

Alternatively, it feels wrong that A is non-scalar as computed.



On Sun, Sep 2, 2012 at 6:48 PM, Linda Alvord
<lindaalv...@verizon.net>wrote:

I finally think I know what I don't know. I want to turn "table" A
into a scalar (which it happens to look like).

      A
4
     $A
1 1
     B=:3 5 7
     A+B
|length error
|   A    +B
     (,A)+B
|length error
|   (,A)    +B
     (,3$A)+B
7 9 11
     (,($B)$A)+B
7 9 11

It feels wrong to have to do things like this every time I want to
use the result of a previous computation called  A .

Linda

-----Original Message-----
From: programming-boun...@forums.jsoftware.com
[mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Linda
Alvord
Sent: Saturday, September 01, 2012 7:26 PM
To: programm...@jsoftware.com
Subject: Re: [Jprogramming] Scalar to Vector - Yet again

I wasn't thinking.  A isn't a scalar. I even knew it had shape 1 1 .

      A
4
     $A
1 1
     $3 2
2
     2$A
4
4
     3 2 + ,2$A
7 6

This works!  Thanks.

Linda

-----Original Message-----
From: programming-boun...@forums.jsoftware.com
[mailto:programming-boun...@forums.jsoftware.com] On Behalf Of km
Sent: Saturday, September 01, 2012 6:10 PM
To: programm...@jsoftware.com
Subject: Re: [Jprogramming] Scalar to Vector - Yet again

,4 is a vector

Sent from my iPad


On Sep 1, 2012, at 4:56 PM, "Linda Alvord" <lindaalv...@verizon.net>
wrote:

I vow to remember how to do this, and several months later I forget
and can't find it

anywhere.  Is there some way to get to the example from the
vocabulary
page?
Maybe I can remember that.



    A=:1 1$4

    3 2 + A

|length error
|   3 2    +A



Thanks.



Linda

--------------------------------------------------------------------
-- For information about J forums see
http://www.jsoftware.com/forums.htm
---------------------------------------------------------------------
- For information about J forums see
http://www.jsoftware.com/forums.htm

---------------------------------------------------------------------
- For information about J forums see
http://www.jsoftware.com/forums.htm

---------------------------------------------------------------------
- For information about J forums see
http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to