This is a read-only archive of the old Scratch 1.x Forums.
Try searching the current Scratch discussion forums.

#7001 2013-02-19 23:52:48

henley
Scratcher
Registered: 2008-06-21
Posts: 1000+

Re: BYOB 3 - Discussion Thread

^^^That was the 7000th post on the topic.

And THIS is the 7000th reply.  big_smile

EDIT: New page kinda ruined the fact that I was pointing to bharvey's post.

Last edited by henley (2013-02-19 23:53:17)


"I've worked so hard for you and you give me nothing in return. Do you need help... Or do I?"

Offline

 

#7002 2013-02-19 23:59:49

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

henley wrote:

And THIS is the 7000th reply.  big_smile

That is kind of a lot of messages, isn't it?  Is it a record?  Maybe we should have multiple threads, you know, "puzzles posted by Snap!pers," "criticism of school posted by Snap!pers," etc.  tongue

EDIT:  Or, maybe when Jens gets our server up, we can include a forum system and instead of sections such as "Advanced Topics" we can have, you know, "Arguments About Politics," "Arguments About Religion," "Teasing nXIII," and so on.

Last edited by bharvey (2013-02-20 00:07:40)


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#7003 2013-02-20 00:28:55

shadow_7283
Scratcher
Registered: 2007-11-07
Posts: 1000+

Re: BYOB 3 - Discussion Thread

nXIII wrote:

It's part of Snap!. You can drag a .ypr project in to import it.

Load failed: Type Error: Cannot call method 'setContents' of undefined

@New forums: Don't forget OS Wars.
Can't wait until new forums when I can ditch my 4th grade username. Shadow, underscore, four digit number.... could it be any worse?

Last edited by shadow_7283 (2013-02-20 00:30:23)

Offline

 

#7004 2013-02-20 00:36:24

Hardmath123
Scratcher
Registered: 2010-02-19
Posts: 1000+

Re: BYOB 3 - Discussion Thread

TypeError: 'undefined' is not an object (evaluating 'this.congents.src') (http://codepad.org/t5pp0ksK)

Jens…


Hardmaths-MacBook-Pro:~ Hardmath$ sudo make $(whoami) a sandwich

Offline

 

#7005 2013-02-20 02:55:15

Jens
Scratcher
Registered: 2007-06-04
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Thanks, that's a typo I introduced yesterday along with SVG_Costumes. It's supposed to be "this.contents.src", and will be fixed later today. When I correct it the project appears to actually work!  smile


Jens Mönig

Offline

 

#7006 2013-02-20 02:58:14

Hardmath123
Scratcher
Registered: 2010-02-19
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Yay!  big_smile


Hardmaths-MacBook-Pro:~ Hardmath$ sudo make $(whoami) a sandwich

Offline

 

#7007 2013-02-20 03:44:11

Hardmath123
Scratcher
Registered: 2010-02-19
Posts: 1000+

Re: BYOB 3 - Discussion Thread

@bharvey I made this ugly language as a joke. It is made up entirely of JSON list literals:

Code:

(Inbuilt values):
01: Define
02: Reference
03: Set
04: Number
05: Compose
06: Decompose
07: If
08: While
09: Equal to
10:Output

Syntax:
[[<function>, <args…>], [<function>, <args…>], …]

Compose brackets recursively to get numbers:
[[]] => 2

Examples:
[[], [], []] => "Define", "Memory at 1", "1"
[ [[[]]], [], [[[[[]]]], [[]]] ] => "Set", "Memory at 1", ["Number literal", "2"]
[ [[[[[[[[[[]]]]]]]]]], [ [[]], [] ] ] => "Output", "Reference", "Memory at 1"

I'm going to write an interpreter in Snap!  big_smile


Hardmaths-MacBook-Pro:~ Hardmath$ sudo make $(whoami) a sandwich

Offline

 

#7008 2013-02-20 03:47:44

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

shadow_7283 wrote:

Can't wait until new forums when I can ditch my 4th grade username.

Oh no, I have to learn new names for everyone?


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#7009 2013-02-20 03:49:08

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Hardmath123 wrote:

Code:

06: Decompose

... no, maybe I'd better not say anything...


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#7010 2013-02-20 04:34:14

Hardmath123
Scratcher
Registered: 2010-02-19
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Ooh, does list-equality-checking check if lists are deeply equal? Nice—I was expecting Python/JS-style checking if they are references to the same object.

EDIT: How do I do reference-checking, then? How about <{} is {}?>?

EDIT2: Forget it… this is way too confusing:

Code:

<project name="abc" app="Snap! 4.0, http://snap.berkeley.edu" version="1">
<notes/>
<thumbnail>
data:image/png;base64,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
</thumbnail>
<stage name="Stage" costume="0" tempo="60" threadsafe="false" scheduled="false" id="1">
<pentrails>
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOiklEQVR4Ae3VwQkAIAwEQbX/niM24X4mDRwMgd0zsxwBAgQIECDwV+D8nbNGgAABAgQIPAEB9gcECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBC4qcoFzaZQGfQAAAAASUVORK5CYII=
</pentrails>
<costumes>
<list id="2"/>
</costumes>
<sounds>
<list id="3"/>
</sounds>
<variables/>
<blocks/>
<scripts/>
<sprites>
<sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" rotation="1" draggable="true" costume="0" color="80,80,80" pen="tip" id="8">
<costumes>
<list id="9"/>
</costumes>
<sounds>
<list id="10"/>
</sounds>
<variables/>
<blocks/>
<scripts>
<script x="20" y="20">
<block s="doSetVar">
<l>list1</l>
<block s="reportNewList">
<list>
<l>a</l>
</list>
</block>
</block>
<block s="doSetVar">
<l>list2</l>
<block var="list1"/>
</block>
<block s="doAddToList">
<l>a</l>
<block var="list2"/>
</block>
</script>
<script x="20" y="107">
<block s="reportEquals">
<block var="list1"/>
<block var="list2"/>
</block>
</script>
<script x="20" y="141">
<block s="reportEquals">
<block s="reportNewList">
<list>
<l>a</l>
<l>b</l>
</list>
</block>
<block var="list2"/>
</block>
</script>
<script x="20" y="178">
<block s="reportEquals">
<block s="reportNewList">
<list>
<l>a</l>
<l>b</l>
</list>
</block>
<block var="list1"/>
</block>
</script>
<script x="20" y="215">
<block s="reportEquals">
<block s="reportNewList">
<list>
<l>a</l>
<l>b</l>
</list>
</block>
<block s="reportNewList">
<list>
<l>a</l>
<l>b</l>
</list>
</block>
</block>
</script>
</scripts>
</sprite>
<watcher var="list1" style="normal" x="10" y="10" color="243,118,29" extX="80" extY="70"/>
<watcher var="list2" style="normal" x="259" y="13.000001999999995" color="243,118,29" extX="80" extY="70"/>
</sprites>
</stage>
<blocks>
<block-definition s="Parse JSON" type="reporter" category="other">
<inputs/>
</block-definition>
</blocks>
<variables>
<variable name="list1">
<list id="64">
<item>
<l>a</l>
</item>
<item>
<l>a</l>
</item>
</list>
</variable>
<variable name="list2">
<ref id="64"/>
</variable>
</variables>
</project>

Last edited by Hardmath123 (2013-02-20 04:42:56)


Hardmaths-MacBook-Pro:~ Hardmath$ sudo make $(whoami) a sandwich

Offline

 

#7011 2013-02-20 05:06:52

xly
Scratcher
Registered: 2010-04-17
Posts: 100+

Re: BYOB 3 - Discussion Thread

Jens wrote:

Thanks, that's a typo I introduced yesterday along with SVG_Costumes. It's supposed to be "this.contents.src", and will be fixed later today. When I correct it the project appears to actually work!  smile

I was very surprised when testing Scratch 2.0 by its "velocity" to display "clouds" of Clones (See for example Worm, Snowfall, Tornado, Waterfall etc) I am suspecting that this is in line with the size and the type of costumes Small svg costumes seems to be much quicker to display than png ones, even if they are very small. I'am eager to make new tests with your correction. ( I have found a Firefox add_on, SgvViewer which permits to display a svg shape)

Offline

 

#7012 2013-02-20 05:16:58

Jens
Scratcher
Registered: 2007-06-04
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Masses of clones are way slower in Snap than in Scratch 2.0, regardless of whether their costumes are PNGs, SVGs or the built-in special "Turtle" visualization. That's because I haven't yet had any time to optimize the evaluator for Scratch-type clones, and it's even an open question whether I ever will. Snap's goal in life isn't so much to mimick Scratch but to optimize the learning experience for "technically rigorous" ideas. Therefore I'd much rather optimize reporter evaluation (which is the case in Snap) and things like nested sprites (yet to come).


Jens Mönig

Offline

 

#7013 2013-02-20 06:16:11

xly
Scratcher
Registered: 2010-04-17
Posts: 100+

Re: BYOB 3 - Discussion Thread

@Jens
I  agree with your choice of "technically rigorous ideas".
Incidentally it proves that JavaScript can be efficient if (and when ) wished.

Offline

 

#7014 2013-02-20 06:47:11

Hardmath123
Scratcher
Registered: 2010-02-19
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Ok, I caused two crashes so far (losing all my work!  sad ), due to displaying extremely large list structures. Any chance you'll improve the list displays?

Why do boolean results show up as the block if you double-click an expression? It makes me feel like "calling" the result. I'm actually unsure of a good replacement, though, maybe a green "true" and red "false" text?

Writing my parser, I found that you haven't really added much string manipulation. I think the most powerful string manipulation functions are "characters () to () in []", and "find [] in []" (which returns a list of indices). Also, preferably these functions should also work for lists, exactly the same way. These blocks are admittedly replicable, but I'd prefer having fast native support.

Finally, about my converter:
1. In the to-do list you may have noticed that I have an entry for an error about empty boolean slots. Do you think that's worth putting a shim in for? I don't think any serious project would have empty inputs.

2. Should I generate "hacks" for the "when () > ()" hat block? It needs something like this:

Code:

when flag
forever
 if <condition>
  code
 wait until <not <condition>>

but I don't think that looks too nice. I can also gracefully throw a "feature unsupported" error.


Hardmaths-MacBook-Pro:~ Hardmath$ sudo make $(whoami) a sandwich

Offline

 

#7015 2013-02-20 06:57:51

Jens
Scratcher
Registered: 2007-06-04
Posts: 1000+

Re: BYOB 3 - Discussion Thread

I don't understand the part about large list structure. List watchers only ever show 100 entries at the most. Using WARP with lists I can create lists of tens of thousands of entries in seconds, and display them onstage. Although the stage displaying part is admittedly not very fast in favor of actual lists being optimized for speed.

The Boolean value representation as blocks was something we put in last August. Don't you think it's pretty and expressive?

Why are empty Boolean slots cause errors?

The WHEN (loudness) > ( ) hat block isn't going to be supported in Snap any time soon, so I vote you show an "this feature is unsupported" message  smile


Jens Mönig

Offline

 

#7016 2013-02-20 06:59:38

roijac
Scratcher
Registered: 2010-01-19
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Hardmath123 wrote:

Ooh, does list-equality-checking check if lists are deeply equal? Nice—I was expecting Python/JS-style checking if they are references to the same object.

EDIT: How do I do reference-checking, then? How about <{} is {}?>?

EDIT2: Forget it… this is way too confusing:
...

Python does deep equality checking, btw...

Offline

 

#7017 2013-02-20 07:18:09

Hardmath123
Scratcher
Registered: 2010-02-19
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Jens wrote:

I don't understand the part about large list structure. List watchers only ever show 100 entries at the most. Using WARP with lists I can create lists of tens of thousands of entries in seconds, and display them onstage. Although the stage displaying part is admittedly not very fast in favor of actual lists being optimized for speed.

Including nested lists?

The Boolean value representation as blocks was something we put in last August. Don't you think it's pretty and expressive?

Well… I guess.

Why are empty Boolean slots cause errors?

Don't worry, this isn't a Snap! issue. The Scratch format doesn't even add an item to the list of arguments when there is no boolean inside, while your format needs <l/>.

The WHEN (loudness) > ( ) hat block isn't going to be supported in Snap any time soon, so I vote you show an "this feature is unsupported" message  smile

Great, thanks.

@roijac really? Cool, I didn't know that.


Hardmaths-MacBook-Pro:~ Hardmath$ sudo make $(whoami) a sandwich

Offline

 

#7018 2013-02-20 07:24:27

Jens
Scratcher
Registered: 2007-06-04
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Yes, lists are optimized for speed, including and especially nested lists. List watchers, however, are slower than in BYOB. But now you can have multiple watchers on the same list, and even edit each one of them independently, while all others still stay in synch. You can even edit list watchers in speech bubbles and in reporter value bubbles (in the scripting area).


Jens Mönig

Offline

 

#7019 2013-02-20 08:36:35

roijac
Scratcher
Registered: 2010-01-19
Posts: 1000+

Re: BYOB 3 - Discussion Thread

#python you can use the 'is' operator if you need identity check (or just id() == id(), but well...)
for example:
[1, 2, 3, 4, (5, 6, 7)] == [1, 2, 3, 4, (5, 6, 7)] #True
[1, 2, 3, 4, (5, 6, 7)] is [1, 2, 3, 4, (5, 6, 7)] #False

Offline

 

#7020 2013-02-20 10:55:19

blob8108
Scratcher
Registered: 2007-06-25
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Hardmath123 wrote:

Ok, I caused two crashes so far (losing all my work!  sad ), due to displaying extremely large list structures.

You didn't accidentally make them circular, did you?  tongue

...empty boolean slots. Do you think that's worth putting a shim in for?

Yes! Someone might drag in a control block and not use it — and you don't want snapin8r to fail just because I left an empty if <> block lying around...

Last edited by blob8108 (2013-02-20 10:56:12)


Things I've made: kurt | scratchblocks2 | this cake

Offline

 

#7021 2013-02-20 11:43:40

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Hardmath123 wrote:

EDIT: How do I do reference-checking, then? How about <{} is {}?>?

Gosh I fall asleep and you guys start doing real work!  smile

The block <IS () IDENTICAL TO ()?> does what you want.


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#7022 2013-02-20 11:47:53

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Hardmath123 wrote:

Why do boolean results show up as the block if you double-click an expression? It makes me feel like "calling" the result. I'm actually unsure of a good replacement, though, maybe a green "true" and red "false" text?

They don't exactly "show up as the block" because there's no ring around them, as there would be if you displayed the block as a value.

Scratch (1.4) does a really bad job of dealing with Boolean values.  In some contexts you see the words "true" and "false"; in other contexts you see the numbers 1 and 0.  That's why we decided to make Booleans not look like anything else.


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#7023 2013-02-20 11:53:51

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Hardmath123 wrote:

Writing my parser, I found that you haven't really added much string manipulation. I think the most powerful string manipulation functions are "characters () to () in []", and "find [] in []" (which returns a list of indices). Also, preferably these functions should also work for lists, exactly the same way. These blocks are admittedly replicable, but I'd prefer having fast native support.

The trouble with starting down this path is that we all have our favorite blocks to speed up.  Before anything about text, I'd add FIRSTS (takes a list of lists and reports a list of the first items of each item) and BUTFIRSTS; I actually made those primitive in Berkeley Logo because it made the implementation of MAP much faster!

I'd like to encourage people to deal with text by using SENTENCE->LIST and then use list operations.  You'll reply that dividing at spaces may not be exactly what people want, and I suppose it wouldn't kill me if S->L took an optional second input that would be a list of delimiter characters.  But I lean toward using text strings to represent natural language, as opposed to programming languages.  YMMV.


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#7024 2013-02-20 21:34:00

Hardmath123
Scratcher
Registered: 2010-02-19
Posts: 1000+

Re: BYOB 3 - Discussion Thread

blob8108 wrote:

Hardmath123 wrote:

Ok, I caused two crashes so far (losing all my work!  sad ), due to displaying extremely large list structures.

You didn't accidentally make them circular, did you?  tongue

Ah, that could be—does that cause an issue, Jens? I'm used to using that as a feature, because in Python you can have infinitely long lists/circular lists:

Code:

x = []
x.append(x)

...empty boolean slots. Do you think that's worth putting a shim in for?

Yes! Someone might drag in a control block and not use it — and you don't want snapin8r to fail just because I left an empty if <> block lying around...

Good point—I suppose it may be a good safety net.

Last edited by Hardmath123 (2013-02-20 21:34:33)


Hardmaths-MacBook-Pro:~ Hardmath$ sudo make $(whoami) a sandwich

Offline

 

#7025 2013-02-20 21:36:33

Hardmath123
Scratcher
Registered: 2010-02-19
Posts: 1000+

Re: BYOB 3 - Discussion Thread

@bharvey: That sounds good, having a "split string [She sells sea shells] at word [s]" will solve a lot of problems.

Oh, and is it bad that I had to look up YMMV?  tongue

@Jens: Any chance you'll add "set rotation style to []"? It's now supported in Scratch. Also, did you fix the typo glitch you mentioned above?  smile


Hardmaths-MacBook-Pro:~ Hardmath$ sudo make $(whoami) a sandwich

Offline

 

Board footer