What are your definitions of By and Over?
tbl
1 : '(,x)u/(,y)'
Table=:[ by ] over +tbl
a Table b
|domain error: Table
| a Table b
by
' '&;@,.@[ ,. ]
over
({. ; }.)@":@,
Linda
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Kip Murray
Sent: Saturday, November 19, 2011 9:58 PM
To: [email protected]
Subject: Re: [Jprogramming] table challenge in simple J
I think the correct way to deal with the misbehavior of Table in extreme
cases is to use adverb tbl below instead of adverb / , leaving the realm
of Simple J.
Use
tbl =: 1 : 0
:
(,x)u/(,y)
)
and
Table =: [ By ] Over +tbl
then
a Table b
+-+-------+
| |0 1 2 3|
+-+-------+
|2|2 3 4 5|
|3|3 4 5 6|
|5|5 6 7 8|
+-+-------+
1 Table 2 3
+-+---+
| |2 3|
+-+---+
|1|3 4|
+-+---+
1 2 Table 3
+-+-+
| |3|
+-+-+
|1|4|
|2|5|
+-+-+
1 Table 2
+-+-+
| |2|
+-+-+
|1|3|
+-+-+
The point is, if adverb tbl is used in place of / then not only is Table
fixed, but also By and Over handle extreme cases correctly.
Incidentally, Over's use of Format ": enables Table to get heading
spacing right:
100 Table 2 3 4
+---+-----------+
| | 2 3 4|
+---+-----------+
|100|102 103 104|
+---+-----------+
On 11/18/2011 10:48 AM, Kip Murray wrote:
> It is 18 November, so below is my solution Table to Linda's challenge.
> It is the same as Raul's. However, it does not handle extreme cases
> well, and I leave it as a further challenge to repair Table.
>
> The difficulty:
>
> 1 Table 2 3
> +-+------+
> | |2 |
> +-+------+
> |1| 3 3 4|
> +-+------+
>
> 1 2 Table 3
> +-+----+
> | |3 |
> +-+----+
> |1| 4 5|
> |2| |
> +-+----+
>
> Flawed solution to Linda's puzzle:
>
> Over
> [: ({. ; }.) [: ": ,
>
> By
> (' ' ; [: ,. [) ,. ]
>
> Table
> [ By ] Over +/
>
> Table f.
> [ ((' ' ; [: ,. [) ,. ]) ] ([: ({. ; }.) [: ": ,) +/
>
> a Table b
> +-+-------+
> | |0 1 2 3|
> +-+-------+
> |2|2 3 4 5|
> |3|3 4 5 6|
> |5|5 6 7 8|
> +-+-------+
>
> Over and Bye can produce any operation table, but Table can only produce
> addition tables.
>
> a By b Over a */ b
> +-+---------+
> | |0 1 2 3|
> +-+---------+
> |2|0 2 4 6|
> |3|0 3 6 9|
> |5|0 5 10 15|
> +-+---------+
>
>
> -------- Original Message --------
> Subject: [Jprogramming] table challenge in simple J
> Date: Sun, 13 Nov 2011 20:51:50 -0500
> From: Linda Alvord <[email protected]>
> Reply-To: Programming forum <[email protected]>
> To: 'Programming forum' <[email protected]>
>
> In the dictionary in the section on "Verbs and Adverbs" there are two
> definitions designed to produce a table:
>
>
>
> over=:({.;}.)@":@,
>
> by=:' '&;@,.@[,.]
>
> a=: 2 3 5
>
> b=: 0 1 2 3
>
> a by b over a +/ b
>
> --T-------┐
>
> │ │0 1 2 3│
>
> +-+-------+
>
> │2│2 3 4 5│
>
> │3│3 4 5 6│
>
> │5│5 6 7 8│
>
> L-+--------
>
>
>
> Here is the challenge. Use the arguments a and b and define a single tacit
> function in "simple J" that does not use @ and provides the same result.
>
>
>
> a table b
>
> --T-------┐
> │ │0 1 2 3│
> +-+-------+
> │2│2 3 4 5│
> │3│3 4 5 6│
> │4│4 5 6 7│
> L-+--------
>
>
>
> To give a little time for thought, do not post a solution until November
> 18th. I'll post mine then too.
>
>
>
> Linda
>
> ----------------------------------------------------------------------
> 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