The conjunction @: turns u@:v into a single verb whereas u v alone represent 2 verbs. Sticking @: into a train converts a hook into a fork, a fork into an hook, and changes verb valence. Let's examine your A and B proverbs.

   with_at=:(+/ % #) , *:@:+:
   sans_at=:(+/ % #) , *: +:
   with_at
(+/ % #) , *:@:+:
   sans_at
(+/ % #) (, *: +:)


Wow!
The with_at case guarantees squaring, the monadic definition of *: .
Without @: the *: appears as an even verb of a fork, hence dyadic,
which is "not and" with Boolean domain.  Thus domain error.

Date: Thu, 16 Apr 2015 05:19:09 -0400
From: "Linda Alvord"<lindaalv...@verizon.net>
To:<programm...@jsoftware.com>
Subject: Re: [Jprogramming] Verb to string and Verb array
Message-ID:<000c01d07826$68500770$38f01650$@verizon.net>
Content-Type: text/plain; charset=utf-8

Why is @: necessary?

(1 {A=:(+/ % #) , *:@:+:)  1 2 3
4
    A
(+/ % #) , *:@:+:
    A 1 2 3
2 4 16 36
        (1 {B=:(+/ % #) , *:+:)  1 2 3
|domain error
|       (1{B=:(+/%#),*:+:)1 2 3
    B
(+/ % #) (, *: +:)
Linda

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

Reply via email to