[Squeak-ev] Re: Eulerprobleme mit Squeak

Bert Freudenberg bert at freudenbergs.de
Mon Nov 8 14:32:20 UTC 2010


On 08.11.2010, at 14:49, Guido Stepken wrote:

> Bert Freudenberg schrieb:
>> On 06.11.2010, at 12:04, Enrico Schwass wrote:
>>  
>>> Ich erwarte deine Einsendung zu Lösung B :)
>>>    
>> 
>> Du meinst, weil Lösung B auf unserer Website falsch ist? Demonstriert sehr schön die Gefahr, unnötigerweise mit Indizes rumzuhantieren.
>> 
>> Von diesem Fehler abgesehen kann man das auch kompakter schreiben:
>> 
>> (1 to: 999) inject: 0 into: [:sum :i |
>> 	(i \\ 3 = 0) | (i \\ 5 = 0)
>> 		ifTrue: [sum + i]
>> 		ifFalse: [sum]]
>> 
>> Das vermeidet trotzdem den exorbitanten Speicherverbrauch von Lösung A.
>> 
>> Noch knapper:
>> 
>> (1 to: 999) detectSum: [:i | (i \\ 3 = 0) | (i \\ 5 = 0) ifTrue: [i] ifFalse: [0]]
>> 
>> Und wenn man Kontrollstrukturen vermeiden mag:
>> 
>> (1 to: 999) detectSum: [:i | i * (#(0 0 1 0 1 1 0 0 1 1 0 1 0 0 1) atWrap: i)]
>> 
>> Macht Spaß :)
>> 
>> - Bert 
> Hat was! ;-) Wie messe ich denn am elegantesten den Speicherverbrauch deiner Lösungen?

Messen ... keine Ahnung. Da aber keine großen Collections erzeugt werden (im Gegensatz zu der Variante mit #select:) ist der Speicherverbrauch vernachlässigbar.

> Apropos: Muss dich nachträglich doch sehr loben für die Portierung von EToys auf iPad ... klasse Arbeit, hat mich begeistert! Ist das schon im Appstore oder hat Apple damit auch Probleme?

Das ist noch lange nicht reif für die Öffentlichkeit. Im Vergleich zu anderer iPad-Software ist die Oberfläche unbedienbar - wurde eben für die Maus entwickelt, nicht für den Finger. Hilfe ist willkommen.

Davon abgesehen ist Etoys für den AppStore zu mächtig. Apple tritt ja als Kurator auf. Als Benutzer einer App aus dem AppStore verlässt man sich darauf, dass die App auch das tut, was sie verspricht. Wenn nun beliebiger Code nachgeladen wird, kann Apple das nicht testen. Deswegen verbieten die AppStore-Richtlinien Applikationen, Code nachzuladen. Da Etoysprojekte aber Code enthalten, würde Etoys derzeit nicht zugelassen. Im Prinzip könnte man ja, wenn das im AppStore wäre, eigene Applikationen als Etoys-Projekt verpacken, und somit Apple als Kurator umgehen.

Möglicherweise wird Apple aber Ausnahmen zulassen, Bildung ist ein guter Grund. Gespräche dazu sind jedenfalls im Gange.

Davon unbetroffen sind reguläre in Squeak geschriebene Anwendungen. Von denen sind ja schon einige im AppStore.

- Bert -