Loopless code?
I struggled in vain to make this program loopless.

En=: 4 : 0 NB. tombola summary program
y=.x*(+/%#)(,y)^/1+i.x
e=.1
for_i. 1+i.x do.
e=.e,~i%~+/(_1^i.i)*e*i{.y
end.
_1&x:|.->{:p. e
)

 

 

   5j2":b=.4 En a=.?1000$0 NB. summary of 1000 numbers
0.12 0.44 0.57 0.89

   1 En a NB. mean value of 1000 numbers
0.504887
   1 En b NB. mean value of just 4 numbers
0.504887






Can it be done?
Thanks!
Bo

    Den fredag den 26. februar 2021 08.30.53 CET skrev Hauke Rehr 
<[email protected]>:  
 
 I remember that knaves example.
Glad to see you agree x/y are better used the other way around.
P is a state altered by each of the knaves in K, respectively.
Another good example showing that, if 'control' vs 'data' were
a decisive creterion, the order of arguments would need to be changed.

When I first read about it, I considered it a fun and approachable
example – and it lends itself to folding so I support elaborating on
this when compiling some learning material/show casing of folds.


Automata are another example: a starting state is altered by
successive transitions depending on items of a control input
into an accepting state.
So replaying a macro (fixed array of commands) takes any current
situation (data) and applies the commands one after the other,
resulting in the (hopefully intended) final situation.

Maybe a “robot in a maze”-like game could show this where
users are given a set of macros and some goal to achieve,
and can apply the macros until they reach it, macros being
replayed by a fold. I’ll add that one to the list of projects
I’d hope to get around to implementing. Might even be used
for teaching programming, just as the “laby” game does.

https://sgimenez.github.io/laby/


Am 26.02.21 um 02:33 schrieb Jose Mario Quintana:
> Different people may have different preferences, mine is a form that I have
> used for many years and roughly corresponds to,
> 
>    fold=. {{ y (v F:. u) x}}
> 
> 
> Thus, the example in,
> 
> Loopless Code VI: Temporary Variables (jsoftware.com)
> <https://www.jsoftware.com/help/jforc/loopless_code_vi_temporary_v.htm>
> 
> becomes,
> 
>    knave=. [ ,~ \:~ @: (] }.~ [: # [)
> 
>    ( P=. 100 25 100 50 5 10 )
> 100 25 100 50 5 10
>    ( K =. _2 ]\ 50 50 100 25 5 10 25 50 25 10 )
>  50 50
> 100 25
>  5 10
>  25 50
>  25 10
> 
>    K ([ (knave fold ] ) {:@:[ , ]) P
> 100 100 50 25 10 5  50 50
>  50  50 50 25 10 5 100 25
> 100  50 25 25 10 5  5 10
>  25  25 10 10  5 5  25 50
>  50  25 10 10  5 5  25 10
> 
> I hope it helps
> 
> 
> 
> 
> 
> On Thu, Feb 25, 2021 at 7:03 PM Hauke Rehr <[email protected]> wrote:
> 
>> For labs and the wiki, we should have some examples
>> easily understood. I have an example where at least
>> what it does is easily understood but I won’t show
>> the implementation – I did a bad job there
>> Essentially, it’s $ with fill.
>> Just like the other example I mentioned, {
>>
>>
>>    2 4 7 (] F.: step)~ i.100
>>  0  1  2  3  4  5  6
>>  7  8  9 10 11 12 13
>> 14 15 16 17 18 19 20
>> 21 22 23 24 25 26 27
>>
>> 28 29 30 31 32 33 34
>> 35 36 37 38 39 40 41
>> 42 43 44 45 46 47 48
>> 49 50 51 52 53 54 55
>>
>>
>> 56 57 58 59 60 61 62
>> 63 64 65 66 67 68 69
>> 70 71 72 73 74 75 76
>> 77 78 79 80 81 82 83
>>
>> 84 85 86 87 88 89 90
>> 91 92 93 94 95 96 97
>> 98 99  0  0  0  0  0
>>  0  0  0  0  0  0  0
>>
>>
>> Am 25.02.21 um 17:51 schrieb Eric Iverson:
>>> I am a member of the silent majority on this issue.
>>>
>>> I have been pleased with the civility of the fold discussion considering
>>> how emotional language issues can be.
>>>
>>> J is not designed by vote or committee. There are always going to be
>> strong
>>> disagreements. But we are a small community and are best served by, at
>> the
>>> appropriate time, burying those disagreements and moving on. I think that
>>> time has come for fold.
>>>
>>> J is the better for having fold. Let's focus now on using it and sharing
>>> how it can be used. Some labs or wiki pages would be nice!
>>>
>>>
>>>
>>>
>>> On Thu, Feb 25, 2021 at 11:25 AM Hauke Rehr <[email protected]>
>> wrote:
>>>
>>>> Good point about the silent ones: you’re right, I guess.
>>>>
>>>> I still disagree regarding fold being used the way you tell us.
>>>> What you want to do can be done with / and the likes.
>>>> Again, the main advantage of the fold verbs from my pont of view
>>>> is that there may be any kind of initial data processed by v
>>>> in a way given by x’s items’ values.
>>>>
>>>> But let’s just settle on “we agree to disagree” – I don’t think
>>>> further back and forth will lead us somewhere.
>>>>
>>>> (and maybe I need to get some rest ere I write more rubbish here)
>>>>
>>>> Hauke
>>>>
>>>> Am 25.02.21 um 17:19 schrieb 'Sergey Kamenev' via Programming:
>>>>> I think Henry Rich is most likely a genius programmer.
>>>>>
>>>>> By the way, I am a supporter of meritocracy,
>>>>> when the weight of a person's voice depends on his merits.
>>>>>
>>>>> But a programming language is written for the community.
>>>>> And so the voice of the community when discussing new features
>>>>> should carry a lot of weight.
>>>>>
>>>>> The definition of a fold itself implies that there is an array that
>> will
>>>>> fold.
>>>>> However, the initial value does not have to be an array,
>>>>> but what is collapsed arg must be an array.
>>>>>
>>>>> Right argument have more arrayness in comparing with left arg.
>>>>>
>>>>> The silent majority most likely does not use Fold verbs,
>>>>> therefore they are silent, since this topic does not concern them.
>>>>>
>>>>> Sergey.
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>
>>>> --
>>>> ----------------------
>>>> mail written using NEO
>>>> neo-layout.org
>>>>
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>>
>> --
>> ----------------------
>> mail written using NEO
>> neo-layout.org
>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> 

-- 
----------------------
mail written using NEO
neo-layout.org

----------------------------------------------------------------------
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