Właśnie się zastanawiałem, czy możliwe jest dopasowanie do tych samych wartości wiele razy z odpowiednimi wzorcami języków programowania funkcjonalnego (Haskell/F #/Caml).Wzór pasujący do identycznych wartości
Wystarczy pomyśleć o następującym przykładzie:
plus a a = 2 * a
plus a b = a + b
Pierwszy wariant będzie wywoływana, gdy funkcja jest wywoływana z dwóch podobnych wartości (które byłyby przechowywane w a
).
Bardziej użyteczna aplikacja to (upraszczanie AST).
simplify (Add a a) = Mult 2 a
Ale Haskell odrzuca te kody i ostrzega mnie o sprzecznych definicji dla a
- Muszę zrobić wyraźny przypadek/IF-kontrole zamiast dowiedzieć się, czy funkcja dostał identyczne wartości. Czy istnieje jakaś sztuczka wskazująca, że zmienna, którą chcę dopasować, wystąpi wiele razy?
FWIW, Mathematica obsługuje to. –