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

Reply via email to