Why should there be any speed up just from assigning the phrase to a noun? 
Surely in both cases the same code has to be executed, one will display the 
result, one will store the result?

___________________________

David Vaughan

On 22 Dec 2011, at 17:46, Raul Miller <rauldmil...@gmail.com> wrote:

> Actually, I think he was asking why the speedup is not available without the 
> =:
> 
> And I think that has to do with "ease of implementation".
> 
> Also, if there's no =: then that syntax is almost certainly being used
> to generate a noun -- it's not being used to build a repeatable
> operation.  You'd have to use different syntax to generate a useful
> verb.
> 
> -- 
> Raul
> 
> On Thu, Dec 22, 2011 at 12:24 PM, Devon McCormick <devon...@gmail.com> wrote:
>> In a word: performance.
>> 
>>   a=. 1e6?@$0
>>   b=. <:+:1e6?@$0
>>   c=. 1e6?@$2
>> 
>>   10 ts 'r=. c}b,:a'
>> 0.0066557413 8390912
>>   10 ts 'c}b,:a'
>> 0.021307987 41945088
>> 
>> 
>> On Thu, Dec 22, 2011 at 11:00 AM, Johann Hibschman 
>> <jhibsch...@gmail.com>wrote:
>> 
>>> Thanks, everyone. I never understood item-amend until now. That's
>>> exactly what I was looking for. For context, I was reading through the
>>> APL book and hit the "/a,u,b/" notation, and wondered how to do that
>>> in J.
>>> 
>>> One question though: why is the particular form (result=:c}b,:a)
>>> singled out, rather than the general (c}b,:a)?
>>> 
>>> On Wed, Dec 21, 2011 at 10:54 AM, Henry Rich <henryhr...@nc.rr.com> wrote:
>>>> Note that
>>>> 
>>>> c}b,:a
>>>> 
>>>> does indeed compute b,:a.  But if it's used in the precise form
>>>> 
>>>> result =: c}b,:a
>>>> 
>>>> the computation is avoided.
>>>> 
>>>>    b =: 1e6$4
>>>>    a =: 1e6$4
>>>>    c=: ? 1e6$ 2
>>>>    ts 'c}b,:a'
>>>> 0.0401299 2.09725e7
>>>>    ts 'q =: c}b,:a'
>>>> 0.0112949 4.19558e6
>>>> 
>>>> There are other special cases; see the Special Code page.
>>>> 
>>>> Henry Rich
>>>> 
>>>> On 12/21/2011 11:43 AM, Marshall Lochbaum wrote:
>>>>> A more obvious way is to use (c { b,.a) . The key is to realize that
>>> saying
>>>>> (if c then a else b) is just selection: if c is 0, we pick b, and if c
>>> is
>>>>> 1, we pick a. So we rephrase as (c { b,a), and J's implicit rank allows
>>> us
>>>>> to do (c { b,.a) for vector c, a, and b.
>>>>> 
>>>>> That said, (c} b,:a) is faster, and uses less memory by not actually
>>>>> computing b,:a . So it's a better choice.
>>>>> 
>>>>> Marshall
>>>>> 
>>>>> On Wed, Dec 21, 2011 at 10:26 AM, Brian Schott<schott.br...@gmail.com
>>>> wrote:
>>>>> 
>>>>>> One way is the following.
>>>>>> 
>>>>>>    c}b,:a
>>>>>> 10 2 30
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> (B=)
>>>>>> ----------------------------------------------------------------------
>>>>>> 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
>>> 
>> 
>> 
>> 
>> --
>> Devon McCormick, CFA
>> ^me^ at acm.
>> org is my
>> preferred e-mail
>> ----------------------------------------------------------------------
>> 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