Re: [Bug-apl] How to zero every other 1 in a sequence

2014-03-21 Thread Juergen Sauermann

Hi,

extending Kacper's idea, you could also try:

  (X/X)←∈(⍴¨X⊂X)⍴¨⊂1 0

It is a bit longer but may be faster because it avoids \.

/// Jürgen


On 03/20/2014 08:08 PM, Kacper Gutowski wrote:

On 2014-03-21 00:23:41, Elias Mårtenson wrote:

One of my experiments was very short, and tantalisingly close to correct:

 ≠\V

Unfortunately, it's not quite right. Does anyone have an idea how to coerce
that one into being right?

I couldn't come up with anything better, but if you don't mind having a
separate statement with assignment in place you could do something like:

   (V/V)←∊≠\¨V⊂V

-k







Re: [Bug-apl] How to zero every other 1 in a sequence

2014-03-20 Thread baruchel
Elias Mårtenson loke...@gmail.com wrote:
 Assume I have a binary sequence. Say, something like this:

 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1

 Here, we can see a few sequences of consecutive ones. I want to zero out
 every second in each sequence. I.e, I'd like to get the following result:

 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1

Not sure if it is short enough, but this seems to work;
however I suggest you check it carefully:
  V×2|+\1⌈(⍳⍴V)×2|⊤\2+V


  V ← 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1
  V×2|+\1⌈(⍳⍴V)×2|⊤\2+V
0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1


Regards,

-- 
Thomas Baruchel



[Bug-apl] How to zero every other 1 in a sequence

2014-03-19 Thread Elias Mårtenson
I've been struggling with this one for days now, and I really need some
advice.

Assume I have a binary sequence. Say, something like this:

0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1

Here, we can see a few sequences of consecutive ones. I want to zero out
every second in each sequence. I.e, I'd like to get the following result:

0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1

If there is a way to do this by starting with zero instead, that would work
too:

0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0

What is the shortest way of achieving this?

Regards,
Elias