> it's possible to emulate them as used-defined utilities (eg asgn=:dyad def
> '(x)=:y' or '(y)=:y~' for things like += etc).
good explanation, but something missing from J is the ability to use those
tricks with =. affecting the caller. Though this topic comming up finally led
me to a solution:
lr
3 : '5!:5 < ''y'''
lassign =: 4 : ' x , ''=. '', lr y ' (".@:)
'a' lassign 3
3
a
3
f =: 3 : ' +: a [ ''a'' lassign y' 6
f 6
12
a
3
----- Original Message -----
From: Dan Bron <[email protected]>
To: "[email protected]" <[email protected]>
Cc:
Sent: Wednesday, June 11, 2014 9:19:29 AM
Subject: Re: [Jprogramming] copula
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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm