Eternity Async Tutoring

Try removing extra paren from one of the expressions in

and see if you can find any problem after removal.

I like it so far. I’ve played it for a few hours so far. I’ve beaten twenty-two levels so far. I think I’m learning something? I do like the stuff with “is” and “and”. I’ll keep playing it. I haven’t been playing many games recently so I’ll probably play this a bit.

Toki Tori was fun. I played the first 5 levels so far and it seems interesting. I might play it more, I don’t know. Right now I’m enjoying baba is you a lot more.

Before:
nor(or(x,y),or(or((or(x,z)),and(((not(x)),not((and(x,y))), or(or(x,z), z))

After:
nor(or(x,y), or(or(or(x,z),and(not(x), not(and(x,y)), or(or(x,z), z))

Hmm. That still makes sense. I still think the two sets of two double parentheses I have are necessary. I think it helps clear up what the second and third “or” operators from the left are working on.

nor(or(x,y), or(or(or(x,z),and(not(x), not(and(x,y), or(or(x,z), z)

Without them the third “or” operator from the left seems to be working on “or(or(x,z), z”. Which it shouldn’t. Or maybe I’m reading this wrong?

I think you’re reading it wrong. After an operator and an open parenthesis, you have to figure out which close parenthesis ends the operator’s inputs.

The rule is the first close parenthesis unless you reach any more open parenthesis, in which case they have to be closed first. The more recent, more nested open paren take priority on matching with close paren.

Ok I’m getting a bit confused.

So here’s the expression:
nor(or(x,y), or(or(or(x,z),and(not(x), not(and(x,y), or(or(x,z), z)

Here’s what you said:

So going through this:
nor(or(x,y), or(or(or(x,z),and(not(x), not(and(x,y), or(or(x,z), z)
I have a parentheses closing off or(x,y), or(x,z), not(x), and(x,y), or(x,z).

Don’t I need “extra” closing brackets to show what the second or, third or, and fifth or are working on?

What do you mean by “extra”? You should have one set of parentheses per operator. Previously you had more but in this post you don’t have more than that.

Both of these are incorrect.

With all notations, the number of open paren should equal the number of close paren.

If you count these, you’ll find the numbers don’t match.

With prefix notation, the number of open paren should also equal the number of operators, and there shouldn’t be 2 open paren in a row, because each open paren goes immediately after an operator (or immediately before for s-expressions).

Besides making sure the counts are correct, you can also draw arrows from every open paren to the close paren it goes with and make sure everything makes sense and encloses the correct stuff. You can also use color coding or multiple lines with indentation to show what goes in what paren.

I understand for those two now, sure. Isn’t this incorrect, too?

I count 17 parentheses.
11 open
6 closed.

I think I’m beginning to understand what you’re saying. I just want to make sure this one is incorrect also before I proceed. You never directly told me if this was one was correct or not. I just assumed it was correct.

Yes it’s also incorrect.

How did you get uneven numbers of parentheses?

1.) nor(or(x,y),or(or((or(x,z)),and(((not(x)),not((and(x,y))), or(or(x,z), z))

open paren - 15
close paren - 11
total paren - 26

Ok. I was missing 4 closing paren for this one.

2.) nor(or(x,y), or(or(or(x,z),and(not(x), not(and(x,y)), or(or(x,z), z))

open paren - 11
close paren - 6
total paren - 17

Ok. I was missing 4 closing paren for this one.

number of operators = 11

So 22 total paren, 11 close, 11 open.

I kinda just realized what you meant by the extra paren. So when it come to this expression:

I got it by only leaving one paren where there multiple paren in my original expression. So:

Has ((or(x,z)). I turned it into (or(x,z) or (((not(x)), not((and(x,y))) became (not(x), not(and(x,y). I didn’t get what you meant by extra so I just thought I just had too many paren’s in my expression (like that it looked cluttered or something),but now that I think about it I don’t think I was too clear in my understanding on what the paren’s were doing.

What do paren do?

Show what an operator is specifically working on. So:

or(x,y)

The paren’s are making it clear that the only things getting or’d are x and y. Hmm. A better example is maybe this:

and(or(x,y), z) vs. and or x y z

The first one says you are trying to use “and” on “or(x,y)” and “z”. The second one is unclear on what is being worked on. Is “and” working on all three? Or is “or” working on all three and I have a one input “and”. It’s not too clear.

It helps clarify what is grouped together to be worked on by an operator.

So here’s my fixed answer for the problem:

OK. Do you think you understand this stuff and your problem is fixed? Do you want to move on or work on parentheses more? Note: Understanding them correctly is very important.

I think I understand this and my problem is fixed. Mmm, Since you say they’re very important I don’t mind working on them a bit more to make sure I really do understand this.

OK find a few things online with a bunch of parentheses and draw arrows from open each paren to the matching close paren.


It was hard finding something. So I just went through my notes, tutoring thread, and LMD’s tutoring thread for expressions with lots of paren. I think I’m fine.

you have at least one error

First one looks fine to me.

Second one has problems. Here’s it fixed:

Third one looks fine to me.

Fourth one looks fine to me.