Hallo, Stefan!
Wie mach ich das mit Iteratoren so elegant wie mit einer Schleife?
firstIndex to: lastIndex do: [:index |
(catalog at: index) showOn: aStream ]
Jetzt du!
Workspace öffnen:
'dies ist ein Beispiel' select: [:each | each isVowel ]. <ALT-P>
nicht mogeln. Wie kriege ich mit einem Iterator die Einträge aus der
Liste? Wenn ich deinem Beispiel folge, frage ich jeden Katalogartikel
nach seiner Position. Die sollte der aber eigentlich nicht kennen, denn
gemäß OO-Prinzip Verkapseln und Verstecken, weiß der einzelne Artikel
nicht, dass er in einer Liste gesammelt ist.
Du meinst Traits, oder Iteratoren mit anonymen Funktionen, um das
Problem der Kapselung zu umgehen?
http://web.cecs.pdx.edu/~black/publications/refactoringsACM.pdf womit
wir bei Pattern der "funktionalen Programmierung" wären .... Aber Du
hast schon recht, zwei Schleifen meist besser....
Ich bin in Bayern zur Schule gegangen und hab hier auch fürs Lehramt
studiert. Mit mir musst du langsam reden. Was ist der Inhalt und die
Oberfläche der Funktion 1/x?
Sorry, die Funktion rotiert um die x-Achse.
Wo ist das Problem? Du kannst die Farbe doch gar nicht reinschütten, weil
Nunja, ich wollte nur auf das Problem hinweisen, daß ich bei einem
solchen Körper begrenztes Volumen bei unendlicher Oberfläche habe, von
mir aus kann man das auch bei x=100 deckeln und ich brauche mehr als
3.14 Liter Farbe, wenn ich das Teil anmale, als wenn ich es ausgieße und
den Rest rausschütte. Ein logisches Paradoxon.
Logische Widersprüche in der Mathematik kenne ich zuhauf....
Wissen wir seit Gödel, dass es so was geben muss. Aber was hat das mit
der Verstehbarkeit eines Systems zu tun, das du nie selbst erfinden
könntest?
Ochja.... ich finde Mathematik zwar verständlich, es ist aber ein sehr
unlogisches Handwerkszeug.... im Studium habe ich mich daher auf eine
neue Art Mathe eingelassen, Differenzialformen - Symplektische Algebra
... hat mir normaler Mathematik nix mehr zu tun ... siehe Skript
Zwirnbauer ....
Lisp durchsucht bei Mehrfachvererbung ja die Klassenhierarchie in einer
vordefinierten Reihenfolge. Die erste Oberklasse wird genommen.
Was meinst du damit? Wofür wird die "erste Oberklasse" genommen?
Muß das Beispiel mal rauskramen ...
Bei C++
muß der Klassenname vorangestellt, also genau bestimmt werden. Unter
bestimmten Voraussetzungen, gerade im Zusammenhang mit
Grabage-Collection und Mehrprozessorsystemen gibt es gigantische
Schwierigkeiten, auch beim Compilerbau ... daher -> Konzept wackelig.
1. Bei C++ oder Lisp?
Lisp und auch bei C++ kann man so richtig Mist bauen damit.
2. Hab ich mit GC bei Einfachvererbungs-Sprachen wie Smalltalk nicht
die gleichen Probleme? Was hat GC überhaupt mit Vererbung zu tun?
Alles bläht sich enorm auf, und im Falle der Mehrfachvererbung, sogar
rekursiv, wird es mit dem RAM kritisch ... das hat Auswirkungen auf die
GC. Ist komplizierter zu erklären ... siehe Google.
3. Nur weil die Implementation nichts taugt, muss ein Konzept nicht
wackelig sein.
Ok. Sind meine Erfahrungen bisher ...
Außerdem kann es passieren, daß die Laufzeit des Programms explodiert,
völlig unvorhergesehen, z.B. dann, wenn sich die Katze in den Schwanz
beißt, sprich Oberklassen von Unterklassen umdefiniert werden.
Was heißt, dass Oberklassen von Unterklassen umdefiniert werden?
Jein. Die Instanzen mussen sich verändern. Im Falle dessen, daß Klassen
auch Objekte sind, verändern sich die Klassen dann ja auch mit. Je nach
Implementierung...
Viel Zeugs eben, das das System unheimlich langsam macht. Rails ist
das Vista der Ruby-Webframeworks. Vor vielen Jahren hat Avi Bryant
ein Framework namens IOWA in Ruby begonnen, das er Kirk Haines vererbt
hat. In nächster Zeit wird's da endlich die offizielle Version 1.0 geben
und von der Geschwindigkeit und dem Ressourcenbedarf her ist das um
Klassen besser.
Aha, danke für den Hinweis.
Gemstone war nicht ganz billig, als ich das letzte Mal nachgeschaut hab.
Was mach ich, wenn ich das Geld nicht hab?
Gemstone fragen, ob die Dir als Lehrer kostenlos eine geben, für
Unterricht. Haben die kein Problem mit, denke ich.
Ich nehme dabbledb, das geht noch schneller. Aber was kann ich jetzt?
Was hab ich dabei gelernt? Hab ich mich durch das Anklicken
vorgefertigter Komponenten irgendwie weiterentwickelt?
Kenne ich leider nicht
dabbledb.com, IIRC. Von Avi Bryant, baut auf Seaside auf.
Aha, fein, schaue ich mir an.
300 GB Textdaten? Unter 1/10 Sekunde? Mit Squeak? Cool. Wie groß ist
denn da die Indexdatei?
Mit Squeak noch nicht probiert, aber mit Glimpse habe ich Benchmarks
gefahren. Die Indexdatei schwankt etwas entsprechend der Verschiedenheit
der Dateninhalte und der Größe der Datenbank.... aber liegt bei 1.5-5%
des Datenvolumens. Nur - die Indizierung dauert ellenlange ...
verbraucht sehr viel Speicher. Google macht das ebenso - die Server
selber sind Cluster und recht klein. Die Indexer sind mächtig.....
s.
Guido