dedlfix: Verschachtelte Aussagenlogik in Routinen realisieren

Beitrag lesen

Tach!

  • Gibt es einen besseren Weg zur Lösung als die Abarbeitung der Aussagenlogik in einer Kontrollstruktur (erstes Beispiel)?

Das Problem löst sich von selbst, wenn man es von der Laufzeit zur Entwicklungszeit verlagert. […].

Ja das hat mir @Rolf B geschrieben was du bestätigt hast. Danke dafür. Du beziehst dich auf ein Anwendungsbeispiel was sich auf diese weise lösen lässt. Ich sprach von einem allgemeinen Problem im ersten abstrakten Beispiel in der Eingangsfrage.

Ja, das war auch eine allgemeine Antwort. Wenn die Reihenfolge X->A()->B()->C() eingehalten werden muss, dann darf X keine Methode B() oder C() enthalten. X darf nur A() haben, und A() muss ein Objekt zurückgeben, dass B() aber nicht A() oder C() hat. Ebenso darf das von B() zurückgegebene Objekt kein A() oder B() sondern nur C() haben. Wenn du das so organisierst, sorgst schon die Autovervollständigung dafür, dass der Programmierer es in der richtigen Reihenfolge aufruft. Und wenn er es nicht tut, dann der Parser.

Und wenn A() optional ist, muss man das entsprechend kombinieren. Dann muss X ein Objekt mit A() und B() sein, und A() muss ein Objekt mit nur B() liefern.

Für SELECT könntest du die Verkettung umsortieren. Die Feldliste darf erst zwischen Group By und Having kommen. Sie steht zwar am Anfang nach dem SELECT, wird aber erst zwischen Group By und Having berechnet. Das ist logischer und sicher auch einfacher zu implementieren.

  • Ist PHP für verschachtelte Aussagenlogik generell ungeeignet, sodass man Funktionale Programmiersprachen für dieses Problem heranzieht z.B. PHP BuiltIn Funktion sort() in C programmiert?

PHP hat auch einige Array-Fuktionen, mit denen funktional programmiert werden kann, zum Beispiel die klassischen drei array_reduce(), array_filter(), array_map().

Sry, entwerder verstehe ich die AW nicht oder ich habe zu undeutlich gefragt. Dafür sry. Ich wollte konkret wissen ob verschachtelte Aussagenlogik - wahrscheinlich im KI-Umfang - besser von Funktionalen Sprachen gelöst werden soll. Dann habe ich nur ein Beispiel genannt und du hast bessere Beispiele mir unterbreitet. Das ist aber nicht die Antwort auf meine Frage, die ich gestellt habe.

Du hast nach PHPs Möglichkeiten gefragt. Ja, in PHP kann man Funktionen wie Variablen übergeben, also ist funktionale Programmierung möglich. KI ist was anderes, ein selbstlernendes System, das löst dein Problem nicht. Was als SQL-Statement formuliert werden darf, folgt bekannten Regeln. Da muss keine KI mehr herausfinden, was zur Lösung führt und was nicht.

dedlfix.