## [3315cb]: doc / html / logic_programming / pattern_matching / index.html Maximize Restore History

### index.html    177 lines (163 with data), 7.3 kB

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175``` ``` Pattern Matching

Hosted by:

Pattern Matching

Pattern matching is a little strange at first, so we're going to ease into it slowly...

There are two aspects to pattern matching: patterns, which you write, and matching, which is what Pyke does with your patterns.

In a nutshell, patterns are made up of two fundamental building blocks:

1. Literal patterns.
• Theses are just data values that only match themselves.
2. Pattern variables.
• These will match anything. (Including other pattern variables, as we'll see later)!

And one compound pattern:

1. Tuple patterns.
• These match -- you guessed it! -- tuples!

We'll examine all of the above looking at how Pyke matches a pattern to data. Then we'll expand this to cover matching two patterns together.

And finally, a pathological question to see if you've been paying attention.

Sound like fun? Good! Let's get started!

OK, so why do we need patterns? The simple answer is that we need patterns to generalize statements. One example is to turn statements into questions.

Important

• When you want a direct statement, such as to state a fact, you just use data for its arguments.
• But when you want a generalized statement, such as to ask a question, you use patterns for its arguments.

More:

Literal Patterns

Explanation of literal patterns.

Pattern Variables

Explanation of pattern variables.

Tuple Patterns

Explanation of tuple patterns.

Matching Two Patterns

Explanation of matching two patterns together, vs matching a pattern to data.