A few applications,
raw list of subsequent duplicates
((-.@:i.)) ListBlock (,<) 1 3 2 4 3 1 1 2
+-------------+-----------+---------+-------+-----+---+-+
|0 0 0 0 1 1 0|0 0 1 0 0 0|0 0 0 0 1|0 0 0 0|0 0 0|1
0|0|
+-------------+-----------+---------+-------+-----+---+-+
Count of subsequent duplicates (boxed then unboxed)
> ((+/@:-.@:i.)) ListBlock (,<) 1 3 2 4 3 1 1 2
2 1 1 0 0 1 0
Link to next duplicate item.
((i.~)) ListBlocK 1 3 2 4 3 1 1 2
4 2 4 4 3 0 1
--- Pascal Jasmin <[EMAIL PROTECTED]> wrote:
> This control structure is a variation on the /
> adverb.
> There is both an adverb form, and more general
> conjunction form. The adverb u ListBlocK 1 2 3 4 is
> equivalent to:
> (1 u 2 3 4) , (2 u 3 4) , (3 u 4)
>
> The more general conjunction form (u ListBlock v) 1
> 2
> 3 4 is equivalent to:
> (1 u 2 3 4) v (2 u 3 4) v (3 u 4)
>
> and also equivalent to
> v/ (u ListBlocK) 1 2 3 4
>
> The control structure is more equivalent to
> lisp/haskell style which use explicit functions that
> have the entirety of the tail available as a
> parameter
> to combine with successive head items. The most
> practical operation is relationship testing between
> members and the rest of the list, in n*n/2 time
> instead of n*n.
>
> ListBlock=: 2 : 0
> NB. Loops through list passing head u rest to dyad
> u.
> NB. results accumulated to lastreturns v newresult
> NB. Purpose: like / but passes full rest of list on
> right.
> try. last=. (v/ i.0) catch. last=. i.0 end. NB.
> v
> must have an identity function defined, or otherwise
> deal with i.0 v (h u y).
> while. 1<#y [ 'h y' =. xxs y do.
> last=. last v h u y
> end.
> last=. last v h u y
> )
> ListBlocK=: (ListBlock ,)
>
> f=: 4 : 'x + +/ y'
> (f ListBlocK) 1 2 3 4
> 10 9 7
> (f ListBlock +) 1 2 3 4
> 26
>
> Maybe InsertWhole would be a better name for it?
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam
> protection around
> http://mail.yahoo.com
>
----------------------------------------------------------------------
> For information about J forums see
> http://www.jsoftware.com/forums.htm
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm