eval is a ghost!

 eval =: 1 : ' a: 1 :  m'
   (+: '@' eval +'/' eval) 1 2 3 
12
   (f=: +: '@' eval +'/' eval) 1 2 3 
12
   f
+:@(+/)
   
   5!:4 <'f'
      ┌─ +:     
── @ ─┴─ / ─── +
   

Linda



-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Pascal Jasmin
Sent: Sunday, April 06, 2014 3:30 PM
To: [email protected]
Subject: Re: [Jprogramming] an improvement to apply and perhaps anon evoke

TIL apply is indeed a verb.

eval keeps the dynamic apply execute code, adding the removal of serializing 
dyadic left argument to it as well.  And, dynamically executing parts or whole 
adverb phrases.  Apply being a verb does create flexibility of applying 
modifiers to it.




----- Original Message -----
From: Dan Bron <[email protected]>
To: "[email protected]" <[email protected]>
Cc: 
Sent: Sunday, April 6, 2014 1:03:43 PM
Subject: Re: [Jprogramming] an improvement to apply and perhaps anon evoke

Eval can't be used as a substitute for apply (128!:2) because eval is an adverb 
and apply is a verb (the whole point of introducing apply was to have a verb 
[whose arguments can change at runtime] which can dynamically apply execute 
code, without requiring that code's arguments to be serialized first, as ". 
does). 

As to anon evoke, the first version was is founded on the same principles as 
eval, basically 1 : , except the aim of the utility was to do so *anonymously*, 
i.e. without naming any arguments - in particular, without naming the argument 
to :, u . 

Since we ready have : and 'name'~, There was no particular 


This was in pursuit of creating a *tacit* evocation f goal was to express the 
utility 

The idea 


> On Apr 5, 2014, at 1:26 PM, Pascal Jasmin <[email protected]> wrote:
> 
> apply does not work with dyadic verbs, and cannot produce modifiers.  
> Consider the following simple looking eval function.
> 
> eval =: 1 : ' a: 1 :  m'
> 
> 
>  2 '+' eval 1 2 3 
> 3 4 5 
> 
> 
>  + '/' eval 1 2 3 
> 6 
> 
> 
> 
>  '+/' eval(+:@) 1 2 3 
> 12 
> 
> 
>  +:@+'/' eval 1 2 3 
> 22 
> 
> 
>  +: +'/' eval 1 2 3 
> 12 
> 
> 
> (+: '@' eval +)'/' eval 1 2 3 
> 
> 22 
> 
>  +: '@' eval +'/' eval 1 2 3 
> 12 
> 
> 
> The last statement is interesting because it seems to alter the normal 
> conjunction train processing (sometimes in desirable ways)
> 
> instead of just grabbing a single token as v.
> 
> < '@' eval +'/' eval 1 2 3    NB. would be domain error without '@'eval
> ┌─┐ 
> │6│ 
> └─┘ 
> 
> 
> eval is the key to how my multiline tacit code works:  
> http://www.jsoftware.com/jwiki/PascalJasmin/Multiline%20tacit%20expressions%20with%20macros
> ----------------------------------------------------------------------
> 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