Na przykład z listami, jeśli napiszę regułę z LHS z myFn [x]
, czy będzie ona również w stanie uruchomić się, gdy programista napisze myFn (x:[])
? czy będę musiał napisać osobną regułę dla każdej możliwej składni?Czy reguły przepisywania GHC rozpoznają cukier syntaktyczny?
6
A
Odpowiedz
7
Reguły ponownego zapisu zostają usunięte. Tak więc zasada re-write jak
{-# RULES
"myFn/singleton" forall x. myFn [x] = myOtherFn x
#-}
będą przechowywane wewnętrznie jako
forall x. myFn (x:[]) = myOtherFn x
To wtedy przyłożonego do odcukrzanych postaci programu. (Cała optymalizacja w GHC ma miejsce w postaci pozbawionej słodyczy programu).
4
Rozumiem, że czysto syntaktyczne rzeczy takie jak te nie mają znaczenia; zasada będzie strzelać w obu kierunkach.
Co będzie znaleźć się być problemem jest to, że myFn
mogły być wstawiane do czasu GHC próbuje użyć reguły (więc nie będzie nic na to, aby strzelać). Ogólnie rzecz biorąc, ustalenie, kiedy dokładnie włączyć reguły (y), jest trudne!
Powiązane problemy
- 1. Zrozumienie Scali: ważna cecha czy cukier syntaktyczny?
- 2. Scala Mapa: tajemniczy cukier syntaktyczny?
- 3. Generic cukier syntaktyczny lub prawdziwa poprawa
- 4. Usuwanie cukier syntaktyczny: rozumienie listy w Haskell
- 5. PHP reguły przepisywania
- 6. . Htaccess Reguły przepisywania subdomeny
- 7. Jak zrobić własny cukier syntaktyczny w szybkim tempie?
- 8. Kompleksowe reguły przepisywania dla subdomeny nginx
- 9. Laravel. Htaccess Przepisywanie reguły przepisywania na IIS
- 10. Czy istnieje cukier syntaktyczny do wiązania wartości wewnątrz anonimowej funkcji w Scali?
- 11. Czy istnieje przypadek użycia dla funkcji std ::, która nie jest objęta wskaźnikami funkcji, czy jest to po prostu cukier syntaktyczny?
- 12. Konfigurowanie reguły przepisywania adresu URL dla konkretnej domeny
- 13. Reguły przepisywania adresu URL IIS 7 nie są stosowane
- 14. Reguły przepisywania dla Apache 2 do użycia z kątowym js
- 15. Reguły przepisywania Apache nie są stosowane dla angularjs
- 16. Jak piszesz zasady przepisywania dla metod typeclass?
- 17. Reguły przepisywania niepoprawne w przypadku reguł pasujących do wielu metod instancji
- 18. Czy to błąd GHC?
- 19. Tryb syntaktyczny i Python razem?
- 20. make: reguła reguły reguły
- 21. Czy sprawdzisz tylko typ GHC?
- 22. Nginx reguła przepisywania dla CodeIgniter
- 23. Zastępowanie reguł przepisywania IIS w transformacji web.config
- 24. Co to jest wyrażenie regularne, aby dopasować pusty ciąg do reguły przepisywania?
- 25. Jak mogę rozwiązać problem, dlaczego moje reguły przepisywania nie są stosowane przez apache?
- 26. Umbraco Reguła przepisywania https powoduje nieskończoną pętlę
- 27. Podprojekty SBT nie rozpoznają poleceń pluginów
- 28. Jak dołączyć ciąg zapytania i jego wartość za pomocą reguły przepisywania IIS?
- 29. aktualizacja reguły przepisywania adresu URL za pomocą instalacji sieci web vs2012 transformacje web.config
- 30. Wyjaśnienie w sprawie zasad przepisywania WordPress'
Wszyscy wiemy, że konstrukcja listy jak "[a, b, c]" jest po prostu cukrem dla 'a: b: c: []', więc te dwa wyrażenia są równoważne, ale druga jest lepszą formą dla wzorca pasujący. – AJFarmar
Cukier syntaktyczny nie ma znaczenia przy przepisywaniu reguł. – augustss