Can you make a simple example that looks like this u@v@w ? Please use actual verbs so that it is a tight little nugget that might come about in a fairly simple mathematical situation. Use it in a situation that does not require rank. Next, write it in explicit form without @
Here's what I would like. Remember foo ? foo=: 13 :'an expression with x's and y's and three verbs like # , %: , ? or * ' Also: Let us use [: u v or u@:v as we like, and specify a rank when we need one. I think I could live with: Let us use [: u v unless rank is involved. Only use u@:v if rank is needed, thus @ vanishes from the planet. Linda -----Original Message----- From: programming-boun...@jsoftware.com [mailto:programming-boun...@jsoftware.com] On Behalf Of Henry Rich Sent: Monday, December 05, 2011 10:08 PM To: Programming forum Subject: Re: [Jprogramming] Turkey Roll - Challenge 2 If you are OK with @: , then we agree. @ is hard for beginners. u@v is equivalent to u@:v"v or ([: u v)"v u@v@w is u@:v"v@:w"w or ([: ([: u v)"v w)"w Henry Rich On 12/5/2011 9:57 PM, Linda Alvord wrote: > Can you make a simple example that looks like this u@v@w . Is it possible > to write an explicit version that will create a tacit expression to do the > same thing? > > I don't have a problem with @: . My concern is only with @ > > Linda > > -----Original Message----- > From: programming-boun...@jsoftware.com > [mailto:programming-boun...@jsoftware.com] On Behalf Of Henry Rich > Sent: Monday, December 05, 2011 9:28 PM > To: Programming forum > Subject: Re: [Jprogramming] Turkey Roll - Challenge 2 > > I don't understand why u@v is anything other than 'right to left'. It > means do v, then do u. u@v@w means w, then v, then u. > > The complication of @ is not its ordering, it's its rank. In my classes > I teach @: as a primitive. We don't use [:, or @ . > > Henry Rich > > On 12/5/2011 9:15 PM, Linda Alvord wrote: >> >> Compare your expression for dice : >> >> faces=: {&' o'@((i.3 3)e.&":"1])&.>4 80 840 8620 86420 865320 >> faces >> ------T-----T-----T-----T-----T-----┐ >> │ │o │o │o o│o o│o o│ >> │ o │ │ o │ │ o │o o│ >> │ │ o│ o│o o│o o│o o│ >> L-----+-----+-----+-----+-----+------ >> >> With Kip Murray's version: >> >> one =: ' ',' o ',:' ' >> two =: 'o ',' ',:' o' >> three =: 'o ',' o ',:' o' >> four =: 'o o',' ',:'o o' >> five =: 'o o',' o ',:'o o' >> six =: 'o o','o o',:'o o' >> ]dice =: one;two;three;four;five;six >> ----T---T---T---T---T---┐ >> │ │o │o │o o│o o│o o│ >> │ o │ │ o │ │ o │o o│ >> │ │ o│ o│o o│o o│o o│ >> L---+---+---+---+---+---- >> >> Your dice are great looking! However that change has greatly increased the >> complexity of the code. Also, there is a condition of the challenge to >> exclude @ in each expression. This requirement encourages considering > the >> execution from the right toward the left. In your example 4 80 840 8620 >> 86420 865320 could be puzzling to a beginner. Your other ideas are >> thoughtful ideas to incorporate in an actual design of a program. At this >> stage, I'm trying to raise issues that can be discussed and explored >> further. >> >> From your design so far, is it possible for you to capture the actual > values >> of the and display them following each toss ? It is this data that > will >> be useful as you finish the challenge. >> >> Linda >> >> >> -----Original Message----- >> From: programming-boun...@jsoftware.com >> [mailto:programming-boun...@jsoftware.com] On Behalf Of Raul Miller >> Sent: Monday, December 05, 2011 9:50 AM >> To: Programming forum >> Subject: Re: [Jprogramming] Turkey Roll - Challenge 2 >> >> Personally, I have been baffled by a number of the choices and > requirements >> here. And, by this, I mean that I do not understand them. >> >> That said, here is my current interpretation of a mix of some of the >> statements expressed here, about what is being accomplished: >> >> faces=: {&' o'@((i.3 3)e.&":"1])&.>4 80 840 8620 86420 865320 >> toss=: (] {~ (?@$ #)) ".bind 'faces' >> >> Example use, with ascii box drawing enabled: >> >> toss 2 10 >> +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ >> |o |o |o o|o |o |o |o |o o|o o|o o| >> | o | o | o | o | o | | | | o |o o| >> | o| o|o o| o| o| o| o|o o|o o|o o| >> +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ >> |o |o o|o |o o|o o|o |o |o |o o|o | >> | o | o | | o | | | | | | | >> | o|o o| o|o o|o o| o| o| o|o o| o| >> +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ >> toss 2 10 >> +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ >> |o |o |o o|o |o o|o |o o|o o|o o|o | >> | | | | o |o o| o | | o |o o| | >> | o| o|o o| o|o o| o|o o|o o|o o| o| >> +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ >> |o o|o |o o|o o|o o|o o| |o o|o o|o o| >> | | | o | | | o | o | | | | >> |o o| o|o o|o o|o o|o o| |o o|o o|o o| >> +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ >> >> Notes: >> >> 1. I spaced my pips out wider, horizontally, than the original. I think >> this looks better. >> 2. toss has 'faces' as an implicit dependency >> 3. I can change the number of dice being tossed by changing the argument > to >> toss >> >> In my opinion, this is not a very good design. In "real life" code, I >> would either replace (". bind 'faces') with (faces) or I would make it an >> argument to the function. >> >> I could probably compress a few characters out of the definition of faces, >> but it would become more mysterious if I did so. >> > ---------------------------------------------------------------------- > 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