Как сопоставление с образцом работает за кулисами в F #?

Я совершенно новичок в F # (и в целом в функциональном программировании), но я вижу, что сопоставление с образцом используется везде в примере кода Мне интересно, например, как на самом деле работает сопоставление с образцом? Например, я представляю, что он работает так же, как цикл for на других языках и проверяет совпадения для каждого элемента в коллекции. Это, вероятно, далеко не правильно, как это на самом деле работает за кулисами?