Ich habe mich gefragt, ob es möglich ist, mehrere Male mit den gleichen Werten zu vergleichen, und zwar mit dem Mustervergleich der funktionalen Programmiersprachen (Haskell/F #/Caml).Muster, das mit identischen Werten übereinstimmt
Man denke nur an folgendem Beispiel:
plus a a = 2 * a
plus a b = a + b
Die erste Variante würde aufgerufen werden, wenn die Funktion mit zwei ähnlichen Werten aufgerufen wird (das in a
gespeichert werden würde).
Eine nützlichere Anwendung wäre dies (vereinfacht eine AST).
simplify (Add a a) = Mult 2 a
Aber Haskell lehnt diese Codes und warnt mich über widersprüchlichen Definitionen für a
- Ich habe stattdessen expliziter Fall/if-Kontrollen zu tun, um herauszufinden, ob die Funktion identische Werte einsehen. Gibt es einen Trick, um anzuzeigen, dass eine Variable, mit der ich übereinstimmen möchte, mehrmals vorkommen wird?
FWIW, Mathematica unterstützt dies. –