Henry (or any other enlighten person),
I am aware that applyintree(
http://www.jsoftware.com/pipermail/general/2005-February/020612.html ,
reproduced below)
can be used dyadically, for example, as follows
(see http://www.jsoftware.com/pipermail/programming/2007-March/005531.html):
unfetch=. [ applyintree
'qq' 1 unfetch 1;2;3
┌─┬──┬─┐
│1│qq│3│
└─┴──┴─┘
('qq';1 2 3) (1;0) unfetch 1;(2;3);4
┌─┬──────────────┬─┐
│1│┌──────────┬─┐│4│
│ ││┌──┬─────┐│3││ │
│ │││qq│1 2 3││ ││ │
│ ││└──┴─────┘│ ││ │
│ │└──────────┴─┘│ │
└─┴──────────────┴─┘
'qq' (1;0;2 1) unfetch 1;((<"0 i.3 4);3);4
┌─┬────────────────┬─┐
│1│┌────────────┬─┐│4│
│ ││┌─┬──┬──┬──┐│3││ │
│ │││0│1 │2 │3 ││ ││ │
│ ││├─┼──┼──┼──┤│ ││ │
│ │││4│5 │6 │7 ││ ││ │
│ ││├─┼──┼──┼──┤│ ││ │
│ │││8│qq│10│11││ ││ │
│ ││└─┴──┴──┴──┘│ ││ │
│ │└────────────┴─┘│ │
└─┴────────────────┴─┘
(1;0;2 1){:: 'qq' (1;0;2 1) unfetch 1;((<"0 i.3 4);3);4
qq
and even
(_1;(<_2;_3)) (1;0 ) unfetch 1;((<"0 i.3 4);3);4
┌─┬────────────────┬─┐
│1│┌────────────┬─┐│4│
│ ││┌──┬───────┐│3││ │
│ │││_1│┌──┬──┐││ ││ │
│ │││ ││_2│_3│││ ││ │
│ │││ │└──┴──┘││ ││ │
│ ││└──┴───────┘│ ││ │
│ │└────────────┴─┘│ │
└─┴────────────────┴─┘
but the commentary and the code suggest more general uses (apart from verbs
other than [) when the x-rank is greater than the y-rank but I cannot
figure it out.
Am I right? If so, can you explain the dyadic form or give some examples.
[Jprogramming] updating tree -- equivalent to what }:: would do*Henry
Rich* HenryHRich
at nc.rr.com
<programming%40jsoftware.com?Subject=%5BJprogramming%5D%20updating%20tree%20--%20equivalent%20to%20what%20%7D%3A%3A%20would%20do&In-Reply-To=20061028021404.51996.qmail%40web50312.mail.yahoo.com>
*Sat Oct 28 10:21:33 HKT 2006*
- Previous message: [Jprogramming] updating tree -- equivalent to what
}:: would do
<http://www.jsoftware.com/pipermail/programming/2006-October/003759.html>
- Next message: [Jprogramming] Neat coroutine implementation
<http://www.jsoftware.com/pipermail/programming/2006-October/003762.html>
- *Messages sorted by:* [ date
]<http://www.jsoftware.com/pipermail/programming/2006-October/date.html#3761>
[
thread
]<http://www.jsoftware.com/pipermail/programming/2006-October/thread.html#3761>
[
subject
]<http://www.jsoftware.com/pipermail/programming/2006-October/subject.html#3761>
[
author
]<http://www.jsoftware.com/pipermail/programming/2006-October/author.html#3761>
------------------------------
Here's what I have (watch for long lines; there are only 2
executable lines):
NB. Conjunction. Apply u at the cell indicated by n
applyintree =: 2 : 0
if. #n do. ((u applyintree (}.n)) L:_1 ({.n){y) ({.n)} y else. u y end.
:**NB. The rank is s,0 where s is the surplus of x-rank over y-rank.
This causes
NB. the cells of y to be matched up with the largest appropriate blocks x. This
NB. is necessary because it is impossible to change the shape of the
values being modified
if. #n do. (x u applyintree (}.n) L:_ _1"(0 (,~ >.) x -&(#@$) a) (a =.
({.n){y)) ({.n)} y
else. x u y end.
)
Example use:
fnx =. >: applyintree (0;2) x NB. Increment state
[ applyintree n would replace.
Henry Rich
>* -----Original Message-----*>* From: programming-bounces at jsoftware.com
><http://www.jsoftware.com/cgi-bin/mailman/listinfo/programming> *>*
>[mailto:programming-bounces at jsoftware.com
><http://www.jsoftware.com/cgi-bin/mailman/listinfo/programming>] On Behalf Of
>Pascal Jasmin*>* Sent: Friday, October 27, 2006 10:14 PM*>* To: Programming
>forum*>* Subject: [Jprogramming] updating tree -- equivalent to what *>* }::
>would do*>* *>* Does anyone have code to update a tree? using the {:: and <
>*>* S: 1 {:: index formats?*>* *>* for example:*>* last10dig=: (/:~ @
>(("."0":) @ (1000000000x &|)))*>* < S: 1 {:: ] 5!:2 <'last10dig'*>* *>*
>Are there plans to implement }:: similarly to }?*>* *>* *>* *>*
>----------------------------------------------------------------------*>* For
>information about J forums see *>* http://www.jsoftware.com/forums.htm*
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm