Hello, Besides dissect that I really like, Art's flowtree ( https://code.jsoftware.com/wiki/User:Art_Anger/FlowTree) looks pretty interesting too, but I haven't used it much yet.
Best regards, On Tue, Feb 1, 2022 at 7:59 PM Hauke Rehr <hauke.r...@uni-jena.de> wrote: > You already understood that some kinds of brackets > don’t come in balanced pairs. But parentheses () nearly > always do, the exceptions being inside of strings, > obviously, and closing ) on a line of its own > (which doesn’t occur here, so I won’t explain that). > (oh, and {{…}} introduced another possibility) > > So there is no (, token nor is {~3#.\0,],0:)@{:)^:y > comprehensible on its own. > > Use dissect in order to find out about the structure > of this expression. (I hardly ever use dissect but Henry > recommends using it for figuring out this kind of things.) > > > > - I could not find the meaning of certain tokens using the > dictionary. For > > instance, what is (,? What is \0? > > \0 doesn’t have a meaning of its own either > \ is an adverb and the following 0 is just that: zero. > you asked for tokens – in J, you get them by > > ;: '(, ((72#:~8#2){~3#.\0,],0:)@{:)^:y ,: 1 y} (>:+:y) $ 0 ' > > ┌─┬─┬─┬─┬──┬──┬─┬─┬─┬─┬─┬─┬─┬─┬──┬─┬─┬─┬─┬─┬──┬─┬─┬──┬─┬──┬─┬──┬─┬─┬─┬─┬──┬──┬─┬─┬─┬─┐ > > │(│,│(│(│72│#:│~│8│#│2│)│{│~│3│#.│\│0│,│]│,│0:│)│@│{:│)│^:│y│,:│1│y│}│(│>:│+:│y│)│$│0│ > > └─┴─┴─┴─┴──┴──┴─┴─┴─┴─┴─┴─┴─┴─┴──┴─┴─┴─┴─┴─┴──┴─┴─┴──┴─┴──┴─┴──┴─┴─┴─┴─┴──┴──┴─┴─┴─┴─┘ > > all of these you either already know (numeric constants, parens) > or you can look up in the dictionary/vocabulary > the 0: is not a constant, but a constant function: it always returns 0 > > maybe you want to try understanding on your own > so I won’t be explaining more (yet) > you already understood some parts – go on that way > > (or ask for a full explanation once you’re too frustrated trying > to figure it out for yourself) > > there are other ways to explore a sentence, as well > (try suffixes; plug in different values for each occurrence of y; …) > > > > Am 01.02.22 um 19:31 schrieb Andrew P: > > I have found in a forum the following J code that generates a Sierpinski > > triangle, and am trying to understand how it works. > > > > sierpinski =: {{ (, ((72#:~8#2){~3#.\0,],0:)@{:)^:y ,: 1 y} (>:+:y) $ 0 > }} > > > > ' #'{~ sierpinski 15 > > > > # > > > > # # > > > > # # > > > > # # # # > > > > # # > > > > # # # # > > > > # # # # > > > > # # # # # # # # > > > > # # > > > > # # # # > > > > # # # # > > > > # # # # # # # # > > > > # # # # > > > > # # # # # # # # > > > > # # # # # # # # > > > > # # # # # # # # # # # # # # # # > > > > > > I am a J novice and what I have gathered so far is that > > > > - {{ }} is an inline definition of a function. In this case a monadic one > > with argument y. > > > > - Calling sierpinski 15 yields a matrix with 0s and 1s making the shape > of > > a Sierpinski triangle. > > > > - ' #'{~ uses the 0s and 1s in that matrix as indexes for the ' #' array, > > thus converting zeros to spaces and 1s to #s. > > > > - (>:+:y) is 2*y+1 (+: being 2* and >: being +1). > > > > - (72#:~8#2) is a weird way of generating the first 8 digits of 72 in > base > > 2. The digits are generated using the dyadic #: verb, with the arguments > > switching sides with the ~ adverb. > > > > > > The rest of the code is incomprehensible to me. In particular: > > > > - I could not find the meaning of certain tokens using the dictionary. > For > > instance, what is (,? What is \0? > > > > - This part of the program is so densely packed that I cannot even break > it > > into pieces: {~3#.\0,],0:)@{:)^:y > > > > > > I would be very grateful if someone could help me understand this code. > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > -- > ---------------------- > mail written using NEO > neo-layout.org > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- Michail L. Liarmakopoulos, MSc Linkedin <https://www.linkedin.com/in/mlliarm/> ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm