我知道模式匹配的要点,在运行时操纵数据结构。我知道模式匹配需要4个参数:匹配模式,匹配表达式,成功延续和失败延续。然而,之后,看着Racket文档,我迷路了。我不明白(具体的,逐行的,解释的例子)如何实现这个代码,以及如何处理它。有人可以向我解释模式匹配的一个简化版本,也许有一个基本的代码来帮助我?解释球拍中的图案匹配?
0
A
回答
3
有了模式匹配,我们要撕开数据结构,所以我们通过在一块的数据进行破坏
(match foo
...)
接下来我们需要指定构造函数列表尝试foo
反对。如果foo
由其中一个构造函数构造,我们将foo
的字段绑定到指定的变量并运行相关的块。
(match foo
[(list a b) (+ a b)]
[_ (displayln "Hey that's not a list!")])
就是这样!如果foo
是两个元素的列表,我们运行+ a b
,如果不是,我们运行另一个继续并打印foo
不是列表。
3
听起来你可能有一个学校的任务来实现模式匹配引擎?
如果是这样,您可能会觉得看这个讲座4A: Pattern Matching and Rule-based Substitution很有趣。
这个讲座是由一些人似乎知道他在说什么。他谈到了这些概念,如何将问题分解成更小的部分,甚至展示了许多代码示例。
相关问题
- 1. 球拍 - 匹配功能
- 2. Lambda在球拍上的解释
- 3. 条件模式球拍匹配
- 4. 球拍匹配语法quasiquote和问号
- 5. 球拍正则表达式匹配
- 6. 有人可以解释球拍的商店传球风格吗?
- 7. 方案(球拍) - 循环库
- 8. 覆盖在方案(球拍)
- 9. 球拍/方案过滤
- 10. 方案/球拍:倍布尔
- 11. 球拍VS方案宏
- 12. 球拍/方案:与结构
- 13. 球拍/方案中的zip函数
- 14. 方案:球拍中的循环功能
- 15. 在球拍中配管
- 16. 匹配图案
- 17. 在方案球拍中乘以Big-int
- 18. 如何比较球拍中的部分字符串匹配?
- 19. 理解图案示例代码匹配
- 20. 匹配图案2
- 21. 包含球拍/方案内的文件
- 22. hackerrank中的解决方案不匹配
- 23. MYSQL解释Rows_examined不匹配
- 24. 解决球拍中的谜题
- 25. 如何解析球拍中的JSON?
- 26. 与两个匹配和非匹配图案至REGx图案
- 27. 匹配包裹的图案
- 28. Haskell的图案匹配
- 29. 拍模式匹配做没有贪婪的比赛球拍语言
- 30. 球拍图的语法
您是否看过[图案匹配](http://www.cs.utah.edu/plt/snapshots/current/doc/guide/match.html)上的“球拍指南”条目?它有一些具体的例子。 –