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 -

Antwort per Email an