# pattern matching

Pattern matching is a computational technique for locating occurrences of a specified pattern within a larger body of data.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Waiting for PostgreSQL 19 - SQL Property Graph Queries (SQL/PGQ)

DevFeed: [Waiting for PostgreSQL 19 - SQL Property Graph Queries (SQL/PGQ)](<https://devfeed.tech/articles/waiting-for-postgresql-19-sql-property-graph-queries-sql-pgq-33693.md>)

Original publisher: [Read original article](<https://www.depesz.com/2026/07/31/waiting-for-postgresql-19-sql-property-graph-queries-sql-pgq/>)

Author: depesz

Published: 2026-07-31T16:57:44Z

Content type: opinion

Language: en

Sources: [select \* from depesz;](<https://devfeed.tech/sources/select-from-depesz.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [function](<https://devfeed.tech/topics/function.md>), [pattern matching](<https://devfeed.tech/topics/pattern-matching.md>)

Tags: [function](<https://devfeed.tech/tags/function.md>), [graph](<https://devfeed.tech/tags/graph.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [pg19](<https://devfeed.tech/tags/pg19.md>), [pgq](<https://devfeed.tech/tags/pgq.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [property](<https://devfeed.tech/tags/property.md>), [sql](<https://devfeed.tech/tags/sql.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>), [waiting](<https://devfeed.tech/tags/waiting.md>)

### AI overview

The article discusses PostgreSQL's SQL/PGQ implementation for property graph queries, including GRAPH_TABLE, graph pattern matching, and related DDL commands. It notes that the change was later rolled back and expresses the author's uncertainty about the practical benefits and usability of the syntax.

### Source excerpt

Important update This change has been rolled back. Discussion can be found here. On 16th of March 2026, Peter Eisentraut committed patch: SQL Property Graph Queries (SQL/PGQ) Implementation of SQL property graph queries, according to SQL/PGQ standard (ISO/IEC 9075-16:2023). This adds: - GRAPH_TABLE table function for graph pattern matching - DDL commands ... Continue reading "Waiting for PostgreSQL 19 - SQL Property Graph Queries (SQL/PGQ)"

## The Philosophy of Machine Learning, or: What Comes After Hegel?

DevFeed: [The Philosophy of Machine Learning, or: What Comes After Hegel?](<https://devfeed.tech/articles/the-philosophy-of-machine-learning-or-what-comes-after-hegel-40130.md>)

Original publisher: [Read original article](<https://korbonits.com/blog/2026-04-09-the-philosophy-of-machine-learning-or-what-comes-after-hegel/>)

Published: 2026-04-09T00:00:00Z

Content type: opinion

Language: en

Sources: [Alex Korbonits](<https://devfeed.tech/sources/alex-korbonits.md>)

Topics: [Automated reasoning](<https://devfeed.tech/topics/automated-reasoning.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [LLMs](<https://devfeed.tech/topics/llms.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>), [pattern matching](<https://devfeed.tech/topics/pattern-matching.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [automated-reasoning](<https://devfeed.tech/tags/automated-reasoning.md>), [conditional-probability](<https://devfeed.tech/tags/conditional-probability.md>), [llms](<https://devfeed.tech/tags/llms.md>), [logic](<https://devfeed.tech/tags/logic.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [reasoning](<https://devfeed.tech/tags/reasoning.md>)

### AI overview

This opinion essay compares large language models with Kant's distinction between a priori structures and a posteriori experience. It argues that LLMs learn patterns from human text but lack reliable logical scaffolding, and presents automated reasoning systems such as SMT solvers and theorem provers as a possible complement.

### Source excerpt

A notebook entry that maps AI paradigms onto the history of Western philosophy -- from scholasticism to Hegel -- and asks what comes next when the current moment exhausts itself.

## Bean Machine Retrospective, part 9

DevFeed: [Bean Machine Retrospective, part 9](<https://devfeed.tech/articles/bean-machine-retrospective-part-9-38667.md>)

Original publisher: [Read original article](<https://ericlippert.com/2023/03/21/bean-machine-retrospective-part-9/>)

Author: ericlippert

Published: 2023-03-21T18:34:38Z

Content type: opinion

Language: en

Sources: [Eric Lippert](<https://devfeed.tech/sources/eric-lippert.md>)

Topics: [pattern matching](<https://devfeed.tech/topics/pattern-matching.md>), [Python](<https://devfeed.tech/topics/python.md>), [function](<https://devfeed.tech/topics/function.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [class](<https://devfeed.tech/topics/class.md>), [C#](<https://devfeed.tech/topics/csharp.md>), [F#](<https://devfeed.tech/topics/fsharp.md>), [Scala](<https://devfeed.tech/topics/scala.md>)

Tags: [debugging](<https://devfeed.tech/tags/debugging.md>), [function](<https://devfeed.tech/tags/function.md>), [object](<https://devfeed.tech/tags/object.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [python](<https://devfeed.tech/tags/python.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

### AI overview

This retrospective describes implementing concise pattern matching in Python, where patterns are represented as predicates and can return structured failure information for debugging. It also develops a type discipline and combinators for matching values, types, lists, and object attributes.

### Source excerpt

I wanted to implement concise "pattern matching" in Python, a language which unlike C#, F#, Scala, and so on, does not have any pattern matching built in. Logically a pattern is just a predicate: a function which takes a value ... Continue reading ->

## PostgreSQL Data Types: Text Processing

DevFeed: [PostgreSQL Data Types: Text Processing](<https://devfeed.tech/articles/postgresql-data-types-text-processing-34594.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/04/postgresql-data-types-text-processing/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-04-11T21:15:42Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [pattern matching](<https://devfeed.tech/topics/pattern-matching.md>), [CSV](<https://devfeed.tech/topics/csv.md>)

Tags: [csv](<https://devfeed.tech/tags/csv.md>), [dataset](<https://devfeed.tech/tags/dataset.md>), [functions](<https://devfeed.tech/tags/functions.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [processing](<https://devfeed.tech/tags/processing.md>), [regexp](<https://devfeed.tech/tags/regexp.md>), [regular](<https://devfeed.tech/tags/regular.md>), [text](<https://devfeed.tech/tags/text.md>)

### AI overview

This tutorial introduces PostgreSQL text-processing functions and operators, including string functions, aggregates, regular expressions, and regexp_split_to_table(). It also discusses text and varchar data types and demonstrates processing comma-separated and hierarchical values in a CSV dataset.

### Source excerpt

Continuing our series of PostgreSQL Data Types today we're going to introduce some of the PostgreSQL text processing functions. There's a very rich set of PostgreSQL functions to process text -- you can find them all in the string functions and operators documentation chapter -- with functions such as overlay(), substring(), position() or trim(). Or aggregates such as string_agg(). There are also regular expression functions, including the very powerful regexp_split_to_table(). In this article we see practical example putting them in practice.

## Seven Languages in Seven Weeks: Erlang

DevFeed: [Seven Languages in Seven Weeks: Erlang](<https://devfeed.tech/articles/seven-languages-in-seven-weeks-erlang-37840.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/seven-languages-in-seven-weeks-erlang/>)

Author: Carlos Alexandro Becker

Published: 2012-12-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Erlang](<https://devfeed.tech/topics/erlang.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [function](<https://devfeed.tech/topics/function.md>), [pattern matching](<https://devfeed.tech/topics/pattern-matching.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [concurrency](<https://devfeed.tech/tags/concurrency.md>), [erlang](<https://devfeed.tech/tags/erlang.md>), [function](<https://devfeed.tech/tags/function.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [process](<https://devfeed.tech/tags/process.md>), [recursion](<https://devfeed.tech/tags/recursion.md>)

### AI overview

A beginner documents working through Erlang exercises from "Seven Languages in Seven Weeks," covering recursion, pattern matching, list comprehensions, regular expressions, concurrency, process monitoring, and process restarts. The author notes that some solutions may contain errors while learning the language.

### Source excerpt

So, I just bought "Seven Languages in Seven Weeks". I've read the Ruby chapter, not a big deal at all, so I skipped it. I also skip Io, Prolog and Scala (for now), and then, fall in Erlang!

## One Thing I Learned From F# (Nulls Are Bad)

DevFeed: [One Thing I Learned From F# (Nulls Are Bad)](<https://devfeed.tech/articles/one-thing-i-learned-from-f-nulls-are-bad-33390.md>)

Original publisher: [Read original article](<https://timkellogg.me/blog/2012/02/29/one-thing-i-learned-from-f-nulls-are>)

Published: 2012-02-29T00:00:00Z

Content type: opinion

Language: en

Sources: [Tim Kellogg](<https://devfeed.tech/sources/tim-kellogg.md>)

Topics: [F#](<https://devfeed.tech/topics/fsharp.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [C#](<https://devfeed.tech/topics/csharp.md>), [exceptions](<https://devfeed.tech/topics/exceptions.md>), [pattern matching](<https://devfeed.tech/topics/pattern-matching.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>)

Tags: [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [f-sharp](<https://devfeed.tech/tags/f-sharp.md>), [functional](<https://devfeed.tech/tags/functional.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

The author reflects on learning F# while contributing to VsVim, highlighting pattern matching, discriminated unions, and F#'s option types. The article argues that using None and Some instead of null can make invalid states explicit and reduce null-related bugs.

### Source excerpt

Recently I started contributing to VsVim, a Visual Studio plugin that emulates Vim. When he was starting the project, Jared Parsons decided to write the bulk of it in F#. He did this mostly as a chance to learn a new language but also because it's a solid first class alternative to C#. For instance, F#'s features like pattern matching and discriminated unions are a natural fit for state machines like Vim.This is my first experience with a truly functional language. For those who aren't familiar with F#, it's essentially OCaml.NET (the F# book uses OCaml for it's markup syntax), but also draws roots from Haskell. It's a big mind shift from imperative and pure object oriented languages, but one I'd definitely recommend to any developer who wants to be better.Since I've been working on VsVim, I've been using F# in my spare time but C# in my regular day job. The longer I use F# the more I want C# to do what F# does. The biggest example is how F# handles nulls.In C# (and Ruby, Python, and any imperative language) most values can be null, and null is a natural state for a variable to be in. In fact (partly due to SQL), null is used whenever a value is empty or doesn't exist yet. In C# and Java, null is the default value for any member reference, you don't even need to explicitly initialize it. As a result, you often end up with a lot of null pointer exceptions due to sloppy programming. After all, it's kind of hard to remember to check for null every time you use a variable.In F#, nothing is null (that's not entirely true, but in it's natural state it's true enough). Typically you'll use options instead of null. For instance, if you have a function that fails to find or calculate something you might return null in imperative languages (and the actual value if successful). However, in F# you use an option type and return None on failure and Some value on success.Here, every time you call find(kittens) you get back an option type. This type isn't a string, so you can't just