Thank you very much, I helped a lot. I do not use spaces in K also. I just suppose that Learning J is not the best book for me. I go to vocabulary and every example for every verb is too complicated.
Regards, On Fri, Nov 18, 2011 at 5:18 PM, Kip Murray <[email protected]> wrote: > Verb 5!:2 can help by boxing the parts of verb cut: > > cut > ' '&$: :([: -.&a: <;._2@,~) > > 5!:2 <'cut' > +--------+-+----------------------------------+ > |+-+-+--+|:|+--+---------+-------------------+| > || |&|$:|| ||[:|+--+-+--+|+---------------+-+|| > |+-+-+--+| || ||-.|&|++|||+---------+-+-+|~||| > | | || || | |||||||+-+--+--+|@|,|| ||| > | | || || | |++|||||<|;.|_2|| | || ||| > | | || |+--+-+--+|||+-+--+--+| | || ||| > | | || | ||+---------+-+-+| ||| > | | || | |+---------------+-+|| > | | |+--+---------+-------------------+| > +--------+-+----------------------------------+ > > Now we see the middle colon separates a left and right part and we > insert a space: > > ' '&$: : ([: -.&a: <;._2@,~) > > An isolated colon : separates the monadic and dyadic cases of a verb. > The part to the left of the colon tells us that when cut is called > monadically (right argument only), cut calls itself with an added left > argument of ' ' . > > You need to define g without the : > > g =: ([: -.&a:<;._2@,~) > > Then > > '.' g '192.168.1.1' > ┌───┬───┬─┬─┐ > │192│168│1│1│ > └───┴───┴─┴─┘ > > The dyadic call to cut is the same as a call to g . > > > The Vocabulary page > > http://www.jsoftware.com/docs/help701/dictionary/vocabul.htm > > has information about conjunctions Monad-Dyad : and Cut ;. (notice > conjunction Cut ;. appears in the definition of verb cut). > > For information about 5!:2 , click on !: at the top of the Vocabulary page. > > > I have to admit conjunctions are hard for beginners, and verbs that have > both monadic and dyadic calls are hard for visitors from K. I apologize > on behalf of the J community for our habit of omitting needless spaces. > Just one space might have helped you understand sooner! > > > On 11/18/2011 3:07 AM, Alexander Epifanov wrote: >> Hello, >> >> Its the third time I am trying to move from K to J without success. >> Stopped and the 8th chapter of "Learning J", because its the half of >> the book, but I cannot read and understand other programs, also cannot >> write simple program. >> >> Let me provide an example. on K I split IP-string: 1_'(0,&"."=" ",s)_ >> " ",s:"192.168.1.1" >> I was trying to rewrite it on J, but I did not find _ (cut) or >> something like that, which splits list by indexes. >> >> I found another cut in J, so the solution is '.'cut'192.168.1.1', but >> I have to understand it. >> cut >> ''&$: :([: -.&a:<;._2@,~) >> >> Do I understand correct that function makes train of verbs without >> round brackets? >> So its (f g) where f =: ' '&$: and g =: :([: -.&a:<;._2@,~) >> But it does not work: >> g '192.168.1.1' >> |syntax error >> >> Why, how to read J expression? In K I just cut expression from let and >> see all imtermediate results, in J it does not work. >> Also, I cannot find anonymous function {} in K, but if I understand >> correct in J it is prefferable to compose verbs. >> >> Thank you. >> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm -- Regards, Alexander. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
