#!/usr/bin/env python3 from seed_common import run_seed # Generate 500 distinct language construct descriptions def gen_language(n: int): constructs = [ "algebraic data types", "pattern matching", "type inference", "higher-kinded types", "typeclasses", "traits", "interfaces", "generics", "lifetimes", "borrow checker", "monads", "applicatives", "functors", "effects system", "capability-based security", "linear types", "dependent types", "gradual typing", "refinement types", "row polymorphism", "async/await", "coroutines", "green threads", "actors", "channels", "CSP-style concurrency", "STM transactions", "lock-free structures", "immutability by default", "pattern guards", "do notation", "pipelines", "macros (hygienic)", "macro_rules", "procedural macros", "compile-time evaluation", "const generics", "metaprogramming", "zero-cost abstractions", "move semantics", "ownership model", "sum types", "product types", ] domains = [ "systems programming", "web services", "data processing", "numerical computing", "distributed systems", "embedded", "graphics", "machine learning", "blockchain", "scripting", "desktop apps", "mobile", ] extras = [ "with borrow-checking", "with region-based memory", "with green-thread scheduler", "with capability tokens", "with staged compilation", "with partial evaluation", "with ownership transfer", "with structural typing", "with nominal typing", "with effect handlers", "with delimited continuations", ] seen = set() i = 0 for c in constructs: for d in domains: phrase = f"Language construct: {c} for {d}" if phrase in seen: continue seen.add(phrase) yield phrase i += 1 if i >= n: return if i < n: for c in constructs: for e in extras: phrase = f"Language construct: {c} {e}" if phrase in seen: continue seen.add(phrase) yield phrase i += 1 if i >= n: return if __name__ == "__main__": run_seed("language", gen_language)