Wie soll die MathList für die Funktion interpretFunctionDefinitions(MathList) angelegt werden?
Wenn man den gleichen Weg geht wie bei der "haupt" MathList, tauchen in der Funktion assembleMathListElements() einige Probleme auf:
MathList ml = new MathList();
ml.buildList("fun1xy:x*yfun2x:3*x")
ml.assembleMathListElements()
Die Funktion kann nicht zwischen Variablen und Funktionsnamen unterscheiden.
Muss die Funktion assembleMathListElements() entsprechend angepasst werden? Oder sollte vielleicht eher eine neue Funktion zum anlegen der MathList geschrieben werden?
Die MathList, welche Funktionen behinhalten, sehen nicht aus wie normale Mathlist welche man evaluieren kann. Das ist so wie es im Praktikum gestellt ist nicht optimal.
Wie die Listen aussehen, kann man in den Tests sehen, dort werden nicht einzelne Symbole als Elemente rangehängt, sondern gleich komplette Strings. Das bedeutet, dass hinter dem Doppelpunkt nur EIN Element kommt, welches direkt einen kompletten String enthält.
Das heißt in interpretFunctionDefinitions müsst ihr lediglich das Element hinter dem Doppelpunkt beachten und wisst, dass in diesem einen Element der komplette Funktionskörper steht und das im darauf folgenden Element eine neue Funktion beginnt.
Es ist richtig, assembleMathListElements() könnte solche Listen nicht richtig assemblen, deswegen werden diese in den Tests auch direkt richtig assembled initialisiert. Wenn ihr die Funktion mit selbst geschriebenen MathLists mit Funktionen testen wollt, dann solltet ihr diese genauso initialisieren wie es in den Tests steht, dann müssen sich nicht assembled werden.
Gruß,
Felix
PS. Man könnte auch eine Assemble Methode schreiben, welche Listen mit Funktionen richtig assembled, aber das ist nicht Teil der Aufgabenstellung.