我知道模式匹配的要點,在運行時操縱數據結構。我知道模式匹配需要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)上的「球拍指南」條目?它有一些具體的例子。 –