I think , is necessary to separate the results and there needs to be an odd number of verbs A,B (3 verbs here) to create a fork that returns a list of results.
Your second example didn't fork the whole verb correctly. Thats my interpretation anyway. --- Original Message --- From: "Linda Alvord" <[email protected]> Sent: April 16, 2015 6:19 PM To: [email protected] Subject: Re: [Jprogramming] Verb to string and Verb array Why is @: necessary? (1 {A=:(+/ % #) , *:@:+:) 1 2 3 4 A (+/ % #) , *:@:+: A 1 2 3 2 4 16 36 (1 {B=:(+/ % #) , *:+:) 1 2 3 |domain error | (1{B=:(+/%#),*:+:)1 2 3 B (+/ % #) (, *: +:) Linda -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Jose Mario Quintana Sent: Wednesday, April 15, 2015 11:14 AM To: Programming forum Subject: Re: [Jprogramming] Verb to string and Verb array One also would have to be careful: (1 { ((+/ % #) , (*:@:+:) )) 1 2 3 4 (*:@:+:) 1 2 3 4 16 36 Why? load'debug/dissect' dissect'(1 { ((+/ % #) , (*:@:+:) )) 1 2 3' On Wed, Apr 15, 2015 at 4:26 AM, Jon Hough <[email protected]> wrote: > Actually it seems, at least in theory, if not in practice, using forks > to pass a verb array is feasible. > If I want to pass around (+/ % #) and (*:@:+:) I could make a verb > verbArray =: ((+/ % #) , (*:@:+:) ) And I could pass it around and > call 0{verbArray to execute and get the result of the first verb with > some argument, and 1{... to do the same for the second. > Of course, the unwanted verb still gets executed, so it seems a silly > idea, but feasible. > > > From: [email protected] > > To: [email protected] > > Date: Wed, 15 Apr 2015 08:14:42 +0000 > > Subject: Re: [Jprogramming] Verb to string and Verb array > > > > In addition, I was thinking that in > > (1{k) 5 > > 0.2 > > > > the (1{k) is a so-called noun fork. > > (n u v) y is defined to be n u (v y) and therefore: > > > > 1 { (k 5) > > 0.2 > > > > because > > k 5 > > 5 0.2 1 > > > > (which is not an average, indeed) > > > > Ben > > ________________________________________ > > From: [email protected] [ > [email protected]] on behalf of Rob Hodgkinson > [ [email protected]] > > Sent: Wednesday, April 15, 2015 10:08 > > To: [email protected] > > Subject: Re: [Jprogramming] Verb to string and Verb array > > > > John, notice subtle difference in what you typed: > > > > k=:((+/),%,# (this is a train of 5 verbs, as ‘,’ is also a verb used > twice in this verb train, so you are catenating the result of the 3 verbs > (+/) then % then #, so the result is a 3 item list. > > > > as opposed to the real fork for average below, which returns an atom. > > > > a=:(+/)%# > > > > k 5 > > 5 0.2 1 > > a 5 > > 5 > > > > So your (1{k) 5 is actually a new function indexing into item 1 of > > the > result of k as Raul described below… (it is not indexing to the % and > applying that to 5 which you may have thought)... > > whereas (1{a) 5 returns index error (since a returns an atom). > > > > Hope this is clear now, Regards Rob > > > > > > > On 15 Apr 2015, at 5:57 pm, Raul Miller <[email protected]> wrote: > > > > > > Technically, you are not indexing the tines of the fork but you > > > are indexing the result of the fork. > > > > > > Thanks, > > > > > > -- > > > Raul > > > > > > > > > On Wed, Apr 15, 2015 at 3:09 AM, Jon Hough <[email protected]> > wrote: > > >> Yes, thanks. It seems more clear. I wasn't aware you could index > tines of a fork.e.g. > > >> > > >> k =: ((+/),%,#) > > >> > > >> > > >> (1{k) 5 > > >> gives 0.2 > > >> That was the main cause of confusion. Thanks. > > >> > > >>> From: [email protected] > > >>> Date: Wed, 15 Apr 2015 02:55:14 -0400 > > >>> To: [email protected] > > >>> Subject: Re: [Jprogramming] Verb to string and Verb array > > >>> > > >>> k is a single verb which produces 3 values for each element of > > >>> its > argument. > > >>> > > >>> It is also a fork, and each tine of the fork has a leaf which is > > >>> a bond (n&v). So if you give it a left argument, that becomes a > > >>> repeat count for those operations. > > >>> > > >>> There are some other properties which you can observe by > > >>> inspection (each tine of the fork is composed of rank zero verbs, for > > >>> example). > > >>> > > >>> Does that help? > > >>> > > >>> Thanks, > > >>> > > >>> -- > > >>> Raul > > >>> > > >>> On Wed, Apr 15, 2015 at 2:34 AM, Jon Hough <[email protected]> > wrote: > > >>>> I am slightly confused with how the tie (gerund) and or the > > >>>> linear > representation are related to this: > > >>>> > > >>>> k =: (^@:(3&*)) d. 1 2 3 > > >>>> > > >>>> > > >>>> results in : > > >>>> > > >>>> > > >>>> > > >>>> > > >>>> ((3"0 * ^@(3&*)) , (9"0 * ^@(3&*)) , 27"0 * ^@(3&*))"0 > > >>>> > > >>>> > > >>>> Which seems to be three verbs; If I do : > > >>>> k 3 > > >>>> > > >>>> > > >>>> I get : > > >>>> > > >>>> > > >>>> 24309.3 72927.8 218783 > > >>>> And I can also do: > > >>>> > > >>>> > > >>>> (0{k) 3 > > >>>> > > >>>> > > >>>> 24309.3 > > >>>> > > >>>> > > >>>> > > >>>> > > >>>> So whatever k is, it returns three nouns for one input noun, > > >>>> and it > is indexable so is an array of some sort. But what exactly (in terms > of > parts-of-speech) is k? > > >>>> > > >>>> > > >>>> > > >>>>> Date: Tue, 14 Apr 2015 18:59:52 +0200 > > >>>>> From: [email protected] > > >>>>> To: [email protected] > > >>>>> Subject: Re: [Jprogramming] Verb to string and Verb array > > >>>>> > > >>>>> Exactly. Actually, any time you want something to work as if > > >>>>> it > were > > >>>>> assigned to a name, you'd need brackets. > > >>>>> Eg: *: +&. won't work, while *: (+&.) will. But this might be > > >>>>> out > of your > > >>>>> scope, since +&. is an adverb, not a verb. > > >>>>> > > >>>>> 2015-04-14 17:35 GMT+02:00 Jon Hough <[email protected]>: > > >>>>> > > >>>>>> Thanks, > > >>>>>> Just to be clear, '(',')',~ is just to bracketify the verb > > >>>>>> so > its fork > > >>>>>> (in this case) works, right? > > >>>>>> > > >>>>>> --- Original Message --- > > >>>>>> > > >>>>>> From: "Jan-Pieter Jacobs" <[email protected]> > > >>>>>> Sent: April 14, 2015 5:26 PM > > >>>>>> To: [email protected] > > >>>>>> Subject: Re: [Jprogramming] Verb to string and Verb array > > >>>>>> > > >>>>>> Hey John, > > >>>>>> > > >>>>>> I think 1. you can do using 5!:5: > > >>>>>> > > >>>>>> mean =: +/%# > > >>>>>> mean i.5 > > >>>>>> 2 > > >>>>>> 5!:5 <'mean' > > >>>>>> +/ % # > > >>>>>> datatype 5!:5 <'mean' > > >>>>>> literal > > >>>>>> ". (('(',')',~5!:5) <'mean'),'0 1 2 3 4' > > >>>>>> 2 > > >>>>>> stringify =: '(',')',~5!:5 > > >>>>>> (stringify <'mean') , '0 1 2 3 4' > > >>>>>> (+/ % #)0 1 2 3 4 > > >>>>>> > > >>>>>> For point 2, you can use gerunds to pass around verbs in a list: > > >>>>>> > > >>>>>> ger =: +`-`*`% > > >>>>>> ger > > >>>>>> ┌─┬─┬─┬─┐ > > >>>>>> │+│-│*│%│ > > >>>>>> └─┴─┴─┴─┘ > > >>>>>> 10 ((1{ger) `: 0) 20 > > >>>>>> _10 > > >>>>>> > > >>>>>> There's a massive amount of uses for gerunds, like / , ^: , } > > >>>>>> , > and so > > >>>>>> on... > > >>>>>> > > >>>>>> If you'd want to do these things (make a noun (or list there > > >>>>>> of)) > out of > > >>>>>> any type of word, I think you should be looking at atomic > representation. > > >>>>>> > > >>>>>> Jan-Pieter > > >>>>>> > > >>>>>> 2015-04-14 10:11 GMT+02:00 Jon Hough <[email protected]>: > > >>>>>> > > >>>>>>> I have a couple of questions: > > >>>>>>> 1. Is it possible to convert a verb, e.g. +/%# , to a string?": > '+/%# 2 > > >>>>>> 3 > > >>>>>>> 4' executes a stringed verb with an argument. But how would > > >>>>>>> I > convert a > > >>>>>>> verb to a string in the first place? > > >>>>>>> Also, I discovered the eval verb > > >>>>>>> > > >>>>>>> > > >>>>>>> eval=: 1 : 0 > > >>>>>>> > > >>>>>>> ". 'w =. ' , u > > >>>>>>> > > >>>>>>> (ar < 'w') ab > > >>>>>>> > > >>>>>>> ) > > >>>>>>> > > >>>>>>> > > >>>>>>> Does this have an inverse? > > >>>>>>> > > >>>>>>> 2. If I have two verbs (or conjunctions, adverbs for that > matter), can I > > >>>>>>> not pass them around in a list? > > >>>>>>> e.g. in other languages, like C# I can put functions into a > > >>>>>>> list (List<Action> for example). > > >>>>>>> I searched JforC and the J website and couldn't find any way > > >>>>>>> to > do this. > > >>>>>>> Thanks Jon > > >>>>>>> > ---------------------------------------------------------------------- > > >>>>>>> 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 > > >>>>>> > > >>>>> > ---------------------------------------------------------------------- > > >>>>> 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 > > >> > > >> ----------------------------------------------------------------- > > >> ----- 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 > > -------------------------------------------------------------------- > > -- 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
