Appearance
How do I create a pattern with elements?
A pattern with elements pairs a value with an ordered list of sub-patterns. Each element is itself a Pattern<V>, so the structure composes recursively.
rust
use pattern_core::Pattern;
use pattern_core::Subject;
let a = Pattern::point(Subject::from_id("a"));
let b = Pattern::point(Subject::from_id("b"));
let root = Pattern::pattern(Subject::from_id("root"), vec![a, b]);
assert_eq!(root.elements().len(), 2);python
from relateby.pattern import Pattern, Subject
a = Pattern.point(Subject.from_id("a"))
b = Pattern.point(Subject.from_id("b"))
root = Pattern.pattern(Subject.from_id("root"), [a, b])
assert len(root.elements) == 2typescript
import { Pattern, Subject } from "@relateby/pattern"
const a = Pattern.point(Subject.fromId("a"))
const b = Pattern.point(Subject.fromId("b"))
const root = Pattern.pattern(Subject.fromId("root"), [a, b])
console.log(root.elements.length === 2) // trueSee also: What is a 'decorated sequence'?