Documentation

Init.Data.String.Basic

Equations
Equations
Equations
@[extern lean_string_dec_lt]
instance String.decLt (s₁ : String) (s₂ : String) :
Decidable (s₁ < s₂)
Equations
@[extern lean_string_length]
Equations
@[extern lean_string_push]

The internal implementation uses dynamic arrays and will perform destructive updates if the String is not shared.

Equations
  • String.push _fun_discr _fun_discr = match _fun_discr, _fun_discr with | { data := s }, c => { data := s ++ [c] }
@[extern lean_string_append]

The internal implementation uses dynamic arrays and will perform destructive updates if the String is not shared.

Equations
  • String.append _fun_discr _fun_discr = match _fun_discr, _fun_discr with | { data := a }, { data := b } => { data := a ++ b }

O(n) in the runtime, where n is the length of the String

Equations
@[extern lean_string_utf8_get]
Equations
def String.getOp (self : String) (idx : String.Pos) :
Equations
@[extern lean_string_utf8_set]
Equations
  • String.set _fun_discr _fun_discr _fun_discr = match _fun_discr, _fun_discr, _fun_discr with | { data := s }, i, c => { data := String.utf8SetAux c s 0 i }
def String.modify (s : String) (i : String.Pos) (f : CharChar) :
Equations
@[extern lean_string_utf8_next]
Equations
@[extern lean_string_utf8_prev]
Equations
@[extern lean_string_utf8_at_end]
Equations
partial def String.posOfAux (s : String) (c : Char) (stopPos : String.Pos) (pos : String.Pos) :
@[inline]
Equations
partial def String.findAux (s : String) (p : CharBool) (stopPos : String.Pos) (pos : String.Pos) :
@[inline]
def String.find (s : String) (p : CharBool) :
Equations
partial def String.revFindAux (s : String) (p : CharBool) (pos : String.Pos) :
@[inline]
Equations

Returns the first position where the two strings differ.

Equations
partial def String.firstDiffPos.loop (a : String) (b : String) (stopPos : String.Pos) (i : String.Pos) :
@[extern lean_string_utf8_extract]
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
  • String.extract.go₁ [] _fun_discr _fun_discr _fun_discr = []
Equations
@[specialize]
partial def String.splitAux (s : String) (p : CharBool) (b : String.Pos) (i : String.Pos) (r : List String) :
@[specialize]
def String.split (s : String) (p : CharBool) :
Equations
partial def String.splitOnAux (s : String) (sep : String) (b : String.Pos) (i : String.Pos) (j : String.Pos) (r : List String) :
Equations
def String.pushn (s : String) (c : Char) (n : Nat) :
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
  • One or more equations did not get rendered due to their size.
Equations
partial def String.offsetOfPosAux (s : String) (pos : String.Pos) (i : String.Pos) (offset : Nat) :
@[specialize]
def String.foldlAux {α : Type u} (f : αCharα) (s : String) (stopPos : String.Pos) (i : String.Pos) (a : α) :
α
Equations
partial def String.foldlAux.loop {α : Type u} (f : αCharα) (s : String) (stopPos : String.Pos) (i : String.Pos) (a : α) :
α
@[inline]
def String.foldl {α : Type u} (f : αCharα) (init : α) (s : String) :
α
Equations
@[specialize]
def String.foldrAux {α : Type u} (f : Charαα) (a : α) (s : String) (stopPos : String.Pos) (i : String.Pos) :
α
Equations
partial def String.foldrAux.loop {α : Type u} (f : Charαα) (a : α) (s : String) (stopPos : String.Pos) (i : String.Pos) :
α
@[inline]
def String.foldr {α : Type u} (f : Charαα) (init : α) (s : String) :
α
Equations
@[specialize]
def String.anyAux (s : String) (stopPos : String.Pos) (p : CharBool) (i : String.Pos) :
Equations
partial def String.anyAux.loop (s : String) (stopPos : String.Pos) (p : CharBool) (i : String.Pos) :
@[inline]
def String.any (s : String) (p : CharBool) :
Equations
@[inline]
def String.all (s : String) (p : CharBool) :
Equations
def String.contains (s : String) (c : Char) :
Equations
@[specialize]
partial def String.mapAux (f : CharChar) (i : String.Pos) (s : String) :
@[inline]
def String.map (f : CharChar) (s : String) :
Equations
Equations
def String.substrEq (s1 : String) (off1 : String.Pos) (s2 : String) (off2 : String.Pos) (sz : Nat) :

Return true iff the substring of byte size sz starting at position off1 in s1 is equal to that starting at off2 in s2.. False if either substring of that byte size does not exist.

Equations
  • One or more equations did not get rendered due to their size.
partial def String.substrEq.loop (s1 : String) (s2 : String) (off1 : String.Pos) (off2 : String.Pos) (stop1 : String.Pos) :

Return true iff p is a prefix of s

Equations
def String.replace (s : String) (pattern : String) (replacement : String) :

Replace all occurrences of pattern in s with replacment.

Equations
partial def String.replace.loop (s : String) (pattern : String) (replacement : String) (acc : String) (accStop : String.Pos) (pos : String.Pos) :
@[inline]
Equations
@[inline]
Equations
  • Substring.toIterator _fun_discr = match _fun_discr with | { str := s, startPos := b, stopPos := stopPos } => { s := s, i := b }
@[inline]

Return the codepoint at the given offset into the substring.

Equations
  • Substring.get _fun_discr _fun_discr = match _fun_discr, _fun_discr with | { str := s, startPos := b, stopPos := stopPos }, p => String.get s (b + p)
@[inline]

Given an offset of a codepoint into the substring, return the offset there of the next codepoint.

Equations
  • One or more equations did not get rendered due to their size.
@[inline]

Given an offset of a codepoint into the substring, return the offset there of the previous codepoint.

Equations
  • One or more equations did not get rendered due to their size.
Equations
Equations
@[inline]

Return the offset into s of the first occurence of c in s, or s.bsize if c doesn't occur.

Equations
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • Substring.atEnd _fun_discr _fun_discr = match _fun_discr, _fun_discr with | { str := str, startPos := b, stopPos := e }, p => b + p == e
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
Equations
@[inline]
def Substring.foldl {α : Type u} (f : αCharα) (init : α) (s : Substring) :
α
Equations
@[inline]
def Substring.foldr {α : Type u} (f : Charαα) (init : α) (s : Substring) :
α
Equations
@[inline]
def Substring.any (s : Substring) (p : CharBool) :
Equations
@[inline]
def Substring.all (s : Substring) (p : CharBool) :
Equations
Equations
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
Equations
def Substring.beq (ss1 : Substring) (ss2 : Substring) :
Equations
@[inline]
Equations