Documentation

Init.Data.String.Basic

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]
def String.push :
Equations
  • String.push x x = match x, x with | { data := s }, c => { data := s ++ [c] }
@[extern lean_string_append]
Equations
  • String.append x x = match x, x with | { data := a }, { data := b } => { data := a ++ b }
Equations
@[extern lean_string_utf8_get]
Equations
def String.getOp (self : String) (idx : String.Pos) :
Equations
@[extern lean_string_utf8_set]
Equations
def String.modify (s : String) (i : String.Pos) (f : CharChar) :
Equations
@[extern lean_string_utf8_next]
Equations
@[extern lean_string_utf8_prev]
Equations
def String.front (s : String) :
Equations
@[extern lean_string_utf8_at_end]
Equations
partial def String.posOfAux (s : String) (c : Char) (stopPos : String.Pos) (pos : String.Pos) :
@[inline]
def String.posOf (s : String) (c : Char) :
Equations
partial def String.revPosOfAux (s : String) (c : Char) (pos : String.Pos) :
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) :
Equations
Equations
partial def String.firstDiffPos.loop (a : String) (b : String) (stopPos : Nat) (i : String.Pos) :
@[extern lean_string_utf8_extract]
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) :
def String.splitOn (s : String) (sep : optParam String " ") :
Equations
def String.pushn (s : String) (c : Char) (n : Nat) :
Equations
Equations
Equations
Equations
structure String.Iterator :
Type
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
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
def String.isNat (s : String) :
Equations
Equations
def String.substrEq (s1 : String) (off1 : String.Pos) (s2 : String) (off2 : String.Pos) (sz : Nat) :
Equations
partial def String.substrEq.loop (s1 : String) (s2 : String) (off1 : String.Pos) (off2 : String.Pos) (stop1 : String.Pos) :
def String.replace (s : String) (pattern : String) (replacement : String) :
Equations
partial def String.replace.loop (s : String) (pattern : String) (replacement : String) (acc : String) (accStop : String.Pos) (pos : String.Pos) :
@[inline]
Equations
@[inline]
Equations
@[inline]
Equations
  • Substring.toIterator x = match x with | { str := s, startPos := b, stopPos := x } => { s := s, i := b }
@[inline]
Equations
@[inline]
Equations
  • Substring.next x x = match x, x with | { str := s, startPos := b, stopPos := e }, p => let absP := b + p; if absP = e then p else String.next s absP - b
@[inline]
Equations
  • Substring.prev x x = match x, x with | { str := s, startPos := b, stopPos := x }, p => let absP := b + p; if absP = b then p else String.prev s absP - b
@[inline]
Equations
@[inline]
Equations
@[inline]
Equations
  • Substring.drop x x = match x, x with | ss@h:{ str := s, startPos := b, stopPos := e }, n => { str := s, startPos := b + Substring.nextn ss n 0, stopPos := e }
@[inline]
Equations
@[inline]
Equations
  • Substring.take x x = match x, x with | ss@h:{ str := s, startPos := b, stopPos := e }, n => { str := s, startPos := b, stopPos := b + Substring.nextn ss n 0 }
@[inline]
Equations
@[inline]
Equations
  • Substring.atEnd x x = match x, x with | { str := s, startPos := b, stopPos := e }, p => b + p == e
@[inline]
Equations
  • Substring.extract x x x = match x, x, x with | { str := s, startPos := b, stopPos := e }, b', e' => if b' e' then { str := "", startPos := 0, stopPos := 0 } else { str := s, startPos := Nat.min e (b + b'), stopPos := Nat.min e (b + e') }
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
@[inline]
Equations
@[inline]
Equations
@[inline]
Equations
@[inline]
Equations
Equations
def Substring.beq (ss1 : Substring) (ss2 : Substring) :
Equations
@[inline]
def String.nextWhile (s : String) (p : CharBool) (i : String.Pos) :
Equations
@[inline]
def String.nextUntil (s : String) (p : CharBool) (i : String.Pos) :
Equations