Doh. padop can easily be a verb:
pad=: ];.0@((+$) {. ])^:2
2 1 pad&.> (i.2 3); i.2 2 2
+-------------+-------+
|0 0 0 0 0 0 0|0 0 0 0|
|0 0 0 0 0 0 0|0 0 0 0|
|0 0 0 1 2 0 0|0 0 0 0|
|0 0 3 4 5 0 0|0 0 0 0|
|0 0 0 0 0 0 0| |
|0 0 0 0 0 0 0|0 0 0 0|
| |0 0 1 0|
| |0 2 3 0|
| |0 0 0 0|
| | |
| |0 0 0 0|
| |0 4 5 0|
| |0 6 7 0|
| |0 0 0 0|
| | |
| |0 0 0 0|
| |0 0 0 0|
| |0 0 0 0|
| |0 0 0 0|
+-------------+-------+
Sorry for the extra noise!
Louis
> On 5 May 2019, at 17:25, Louis de Forcrand <[email protected]> wrote:
>
> Hi,
>
> Not exactly an answer to the question, but rather a cute way to pad an array
> of any rank using a cool feature of ;. cut that I ran into today.
> From the dictionary:
>
> u;.0 y applies u to y after reversing y along each axis; it is equivalent to
> (0 _1 */$y) u;.0 y .
>
> Using this:
>
> padop=: &((+$) {. ]) (;.0) (^:2)
> 2 padop i.2 3
> 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0
> 0 0 0 1 2 0 0
> 0 0 3 4 5 0 0
> 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0
> 1 padop i.2 2 2
> 0 0 0 0
> 0 0 0 0
> 0 0 0 0
> 0 0 0 0
>
> 0 0 0 0
> 0 0 1 0
> 0 2 3 0
> 0 0 0 0
>
> 0 0 0 0
> 0 4 5 0
> 0 6 7 0
> 0 0 0 0
>
> 0 0 0 0
> 0 0 0 0
> 0 0 0 0
> 0 0 0 0
>
> Unfortunately padop must be an adverb in order to be tacit (unless there is
> maybe some wicked way). The corresponding explicit verb could be used for a
> default left argument.
>
> Anyway just an illustration of one of cut’s many powers that I probably often
> overlook.
>
> Cheers,
> Louis
>
>> On 5 May 2019, at 09:44, 'robert therriault' via Programming
>> <[email protected]> wrote:
>>
>> Hi Linda,
>>
>> I think that the trick is that the left operand for ^: needs to be a verb.
>> this seems to work.
>>
>> f=:(0 ,.~ 0 ,. 0 ,~ 0 , ])^:[
>> 1 f i. 3 4
>> 0 0 0 0 0 0
>> 0 0 1 2 3 0
>> 0 4 5 6 7 0
>> 0 8 9 10 11 0
>> 0 0 0 0 0 0
>> g=: 4 : '(0 ,.~ 0 ,. 0 ,~ 0 , ])^:x y'
>> 1 g i. 3 4
>> 0 0 0 0 0 0
>> 0 0 1 2 3 0
>> 0 4 5 6 7 0
>> 0 8 9 10 11 0
>> 0 0 0 0 0 0
>>
>> Cheers, bob
>>
>>> On May 5, 2019, at 12:36 AM, Linda Alvord <[email protected]> wrote:
>>>
>>> f=:(0 ,.~ 0 ,. 0 ,~ 0 , ])^:[
>>
>> ----------------------------------------------------------------------
>> 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