sorry if this has been answered already,

>@(~.@[ ; each </.)/ animals ,: ids



----- Original Message -----
From: 'Jon Hough' via Programming <[email protected]>
To: [email protected]
Sent: Friday, March 4, 2016 4:34 AM
Subject: Re: [Jprogramming] J Challenge

I don't think for a minute that this will be the most terse or most elegant but 
this is what I got:

animals =: 
'bird';'cow';'cow';'dog';'cow';'cow';'cow';'bird';'dog';'cat';'dog';'pig';'dog';'bird';'pig'

ids =: 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15

f =: (((1,~ #) $])@:~.@:]) ,. (]/.)~

ids f animals

--------------------------------------------
On Fri, 3/4/16, Skip Cave <[email protected]> wrote:

Subject: [Jprogramming] J Challenge
To: "[email protected]" <[email protected]>
Date: Friday, March 4, 2016, 6:01 PM

​Well, the format of that last post
was a bit messy. Here's a second try:​

​
The
  animal control officer wants to keep track of the animals
in a city.
The officer tags all the animals with a serial number.
He keeps a list of all the animals he has tagged, along with
each serial
number.

    list​
​┌────┬───┬───┬───┬───┬───┬───┬────┬───┬───┬───┬───┬───┬────┬───┐
│bird│cow│cow│dog│cow│cow│cow│bird│dog│cat│dog│pig│dog│bird│pig│
├────┼───┼───┼───┼───┼───┼───┼────┼───┼───┼───┼───┼───┼────┼───┤
│1   │2  │3  │4 
│5  │6  │7 
│8   │9  │10 │11 │12 │13
│14  │15 │
└────┴───┴───┴───┴───┴───┴───┴────┴───┴───┴───┴───┴───┴────┴───┘​

The officer now wants to make a second list showing each
type
of animal along with all the serial numbers tagged for each
animal.

    list2      ​
┌────┬──┬──┬──┬──┬─┐
│bird│1 │8 │14│  │ │
├────┼──┼──┼──┼──┼─┤
│cow │2 │3 │5 │6 │7│
├────┼──┼──┼──┼──┼─┤
│dog │4 │9 │11│13│ │
├────┼──┼──┼──┼──┼─┤
│cat │10│  │  │  │ │
├────┼──┼──┼──┼──┼─┤
│pig │12│15│  │  │ │
└────┴──┴──┴──┴──┴─┘

​What is the shortest J expression to generate list2?
​ (Tacit would be nice)​
​
Skip Cave
----------------------------------------------------------------------
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