Parsing Lisp Code in Snap!

I’m missing the joke (if it is one?)

In my experience, and I’m sure many others (e.g. @callietastrophic) will agree, Scheme (or LISP) as used in SICP, is much harder to read than Snap! (isn’t that one of the reasons why Snap! was developed un the first place?). Translating SICP’s examples to Snap! will help us mudbloods learn sorcery, and become wizards, too.

Yeah, I hope so. But I'm not allowed to think about that until the manual is ready. :~(

Did you read what I wrote about keeping track of where you're up to in the input? You don't have to do it my way, but you have to do it some way.

I'm sorry. I didn't see your post above.

I'll never forgive you. :~P

:)​

Okay. I'm working through the logic let's see what I can do.

I was trying to do more research on the subject of generating Abstract Syntax Trees, and this came up:
image
(Bing search at its finest.)

Yay! :~D

I fully agree with your priority! Even so “thinking about”, and discussing / guiding it ≠ doing it yourself. Apparently both @jens and @bluebaritone21 have already been working on building blocks, literally.

In my experience, and I’m sure many others will agree, Scheme (or LISP) as used in SICP, is much harder to read than Snap*!* (isn’t that one of the reasons why Snap*!* was developed un the first place?). Translating SICP’s examples to Snap*!* will help us mudbloods learn sorcery, and become wizards, too.

Essentially. I've been trying to teach myself this in some shape for form for decades, level editors, text editors, IDE's you name it. The general rule is, to get better at code, read others code to see what they did and then experiment with that code, but for ME? I see heiroglyphs and mystic runes.

Snap! I have the opposite issue, I get it fairly easily, but because of it's nature, it's constraints behind javascript mean it's limited to the browser.

So as much as I would love to build SICP's meta-circular evaluator and it's interpreter and it's compiler? Especially it's compiler? Scheme isn't quite Snap! and thus, I can't quite make the leap necessary. I'd love, love love to put Quake in a Snap powered meta-circular evaluator and watch it move. I'd adore it so much, but for now? I'm just ranting to the void (These forums, my sympathies)

My other major issue is all the leading text books are over thirty years old or close to it.

SICP's most recent edition was wasted on javascript and should have been written for snap!

My teacher-impostor mind protests and points out that a) this "code" is reinforcing the wrong idea about text being somehow more "real", and that folks are going to love it way too much (for all the wrong reasons, including "transpiling" SICP examples, haha!). Also I hate that it reinforces English as the seemingly "underlying" language.

For me? I think it'll have the opposite actual effect. When snap becomes mainstream, the text languages will vanish, like they should have done thirty years ago. Maybe I'm wrong? (Highly likely) but the visual representative nature of Snap! or Scratch gets far more across.

I keep citing games, because I'm a gamer, but there's a reason UX is a huge design consideration in games now because there's so much information to present, that visual short hands achieve more than text or narration does. (There's "debate" about that, but that's a whole other can of worms)

I also kind of want to post a screenshot of a game I'm playing, at the moment, showing one of my favourite things in the series, the way it presents weapon data, but even though I turned the gore off, it's not a kids game and this is a kids forum. When I first read about Meta-circular evaluators, my first automatic comparison was to Borderlands weapons cards.

I doubt it's the same thing, I'm figuring it's just a csv list in a visual style, but it looks cool

Yeah, I hope so. But I'm not allowed to think about that until the manual is ready. :~(

To be fair if I wasn't getting stuck in the mire, I'd be doing a lot of this myself instead of whining in the forums.

It doesn't quite help with my research, though. All the other website listings where just about recursion. I thought it was funny that the first result was this topic.


On another note, I have a friend in real life that works on text language interpreters for a living. He suggested that I read Crafting Interpreters. So, I'm going to try it (implementing the code in Snap!, of course :)​ )

"Most recent edition" is misleading. Abelson and Sussman had nothing to do with that effort apart from giving it their blessing. You can't really tell third parties what their preferred language should be! :~)

And also, they had good reasons for their choice. SICP is basically dead in the CS education world because teachers don't want to teach Scheme. They could have chosen Python, which would probably have been even more popular, but Python has a broken lambda; JS is much closer to Scheme. (In fact, the original plan for browsers was that it would be Scheme, but the management chickened out and insisted on a syntax that Real Programmers™ would find familiar.)

How is Python's lambda broken?

you use Bing too? I also use bing as my main search engine because i use windows.

I would use DuckDuckGo, but my school district blocked it for no good reason.

ok

Restricted to one-liners, and wrong scope rules.

I see. I guess I'ven't used Python lambdas enough to notice.

I'm going to start making an implementation of Lox.

Here is my project: I call libLox. (It's gonna be a bit hard because the original implementation in the book is in Java.)

"Most recent edition" is misleading. Abelson and Sussman had nothing to do with that effort apart from giving it their blessing. You can't really tell third parties what their preferred language should be! :~)

Yeah, I know, it was a crowd-sourced effort that took them years to build, on that, it's great work and kudos for them to getting the nod so they can publish it.

Also, they had good reasons for their choice. SICP is basically dead in the CS education world because teachers don't want to teach Scheme. They could have chosen Python, which would probably have been even more popular, but Python has a broken lambda; JS is much closer to Scheme. (In fact, the original plan for browsers was that it would be Scheme, but the management chickened out and insisted on a syntax that Real Programmers™ would find familiar.

People cutting corners and having massive long term consequences? I'm shocked. SHOCKED... (Is not even remotely shocked)

On another note, I have a friend in real life that works on text language interpreters for a living. He suggested that I read Crafting Interpreters. So, I'm going to try it (implementing the code in Snap*!* , of course :)​ )

Ooh! Thanks for pointing that out to me, I'll try that book tonight as well. Lets see how many pages I get through before I throw a temper tantrum. (taking bets for less than ten LOL) (No bets will be taken, remember kids, Gambling is Bad)