ludic/docs/language/text/text-ends_with.md
Orkuncakilkaya b7745a4600 refactor(lang): rename the str type (and stringify builtin) to string
Expand the abbreviated string type and its conversion builtin to the full
word everywhere:
  str            ->  string        (the immutable-string type)
  str(x) -> str  ->  string(x) -> string   (the stringify builtin;
                                            what `{…}` interpolation calls)

Types are recognized by identifier, and llty maps both spellings to LLVM
`ptr`, so this is an atomic source rewrite: type annotations, the Ludic
type tags, the builtin name/dispatch, and the interpolation desugar, plus
the grammars, LSP, docs (type-str -> type-string, fn-str -> fn-string), and
inventory. int/bool stay (universally accepted, like Math).

Reseeded; C-free fixpoint holds; all suites green (45/24/29); site + check.py OK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-30 01:51:11 +03:00

818 B

id name category kind tokens sig tip order ns member
text-ends_with Text.ends_with text namespace-method Text.ends_with Text.ends_with(s, suffix) -> bool Whether a string ends with a given suffix. 4 Text ends_with

Returns true when s ends with suffix, comparing the tail of the string over the suffix's length. If the suffix is longer than the string it simply returns false. Use it to detect file types by extension, recognize a trailing marker, or validate that input closes as expected.

Parameters:

  • s — the string to test
  • suffix — the trailing substring to look for
program IsImage {
  var filename: string = "hero.png"

  handler Classify phase Update {
    let png = Text.ends_with(filename, ".png")   # true
  }
}