Я знаю суть соответствия шаблонов, где вы управляете структурами данных во время выполнения. Я знаю, что сопоставление шаблонов содержит 4 аргумента: шаблон для соответствия, выражение для соответствия, продолжение продолжения и продолжение отказа. Однако после этого, глядя на документацию по ракетке, я теряюсь. Я не понимаю конкретно (с конкретными, поэтапными, объясненными примерами), как реализовать это в коде и что с ним делать. Может кто-нибудь, пожалуйста, объясните мне туповатую версию соответствия шаблонов, возможно, с базовым кодом, который поможет мне?Объясните соответствие шаблону в Racket?
ответ
С сопоставлением с образцом, мы хотим разорвать datastructures, поэтому мы переходим в части данных для уничтожения
(match foo
...)
Далее нам нужно указать список конструкторов попробовать foo
против. Если foo
был сконструирован одним из этих конструкторов, мы связываем поля foo
s с указанными переменными и запускаем соответствующий блок.
(match foo
[(list a b) (+ a b)]
[_ (displayln "Hey that's not a list!")])
Это все! Если foo
- это список из двух элементов, мы запускаем + a b
, если нет, мы запускаем другое продолжение и печатаем, что foo
не является списком.
Похоже, может быть, у вас есть школьное задание по внедрению механизма сопоставления шаблонов?
Если это так, вам может быть интересно посмотреть эту лекцию, 4A: Pattern Matching and Rule-based Substitution.
Лекция от какого-то парня, который, похоже, знает, о чем говорит. Он рассказывает о концепциях, о том, как разбить проблему на более мелкие части и даже отображает множество образцов кода.
- 1. Racket регулярное выражение соответствие
- 2. Соответствие шаблону в javascript
- 3. Соответствие шаблону в Java
- 4. Соответствие шаблону в файле
- 5. Соответствие шаблону в C#
- 6. Соответствие шаблону в excel
- 7. Соответствие шаблону в C#
- 8. Соответствие шаблону в файле
- 9. Соответствие шаблону в Lua
- 10. Соответствие шаблону в OCaml?
- 11. Соответствие шаблону в Python
- 12. Соответствие шаблону в SQL
- 13. соответствие шаблону и компиляции
- 14. Соответствие шаблону массива Ruby
- 15. Соответствие шаблону html-меток
- 16. Соответствие шаблону списка OCaml
- 17. Соответствие шаблону строки
- 18. Соответствие шаблону MySQL-FULLTEXT
- 19. Соответствие шаблону T-SQL
- 20. Соответствие шаблону HTML5
- 21. Соответствие шаблону последовательным символам
- 22. Соответствие шаблону для строки
- 23. соответствие шаблону файла CSV
- 24. Соответствие шаблону: regex - perl
- 25. Соответствие шаблону Python
- 26. Заменить на соответствие шаблону
- 27. Bash: соответствие шаблону
- 28. Соответствие шаблону AIML - howto?
- 29. ksh: соответствие шаблону номера
- 30. Regular Express - Соответствие шаблону
Вы видели запись Руководства по сборке на [соответствие шаблону] (http://www.cs.utah.edu/plt/snapshots/current/doc/guide/match.html)? В нем есть некоторые конкретные примеры. –