If copulas were verbs, what would happen here?

   count=:77
   msg=:'count'
   msg=:msg,': ',":count

Or, better yet:

   count=: count +1

Similar remarks apply to the question of whether copulae should be adverbs or 
conjunctions. In short: in order to see a /name/ on the left, as opposed to a 
/value/, copulae need a special parsing rule with higher precedence (binding 
power) than any nameclass. Which means copulae can't operate "normally" (as 
expected, ie name=:value) and also participate as one of the kinds of names 
(nameclasses) it can assign, or bind.

With that said, it's possible to have a different set of copulae, distinct from 
=: and =., that act like verbs (or adverbs, or conjunctions), and do what you 
want, so long as you can live with the limitation that this lower-power kind of 
copula cannot, itself, assign verbs (respectively, adverbs or conjunctions).

I don't we will ever implement these as primitives in the language, but it's 
possible to emulate them as used-defined utilities (eg asgn=:dyad def '(x)=:y' 
or '(y)=:y~' for things like += etc).

-Dan

Please excuse typos; sent from a phone.

> On Jun 11, 2014, at 9:00 AM, David Lambert <[email protected]> wrote:
> 
> I'd like to know the reasoning that copula are not verbs please.
> 
>   B
> |value error: B
> 
>   (=:~ ('A B C ' {.~ +:@#))i.2
> |syntax error
> |   (=:    ~('A B C '{.~+:@#))i.2
> 
> 
>   assign=: 4 :'EMPTY [ (x)=: y'
> 
>   (assign~ ('A B C ' {.~ +:@#))i.2
> 
>   B
> 1
> 
> ----------------------------------------------------------------------
> 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