Function programinduction::domains::strings::dsl
source · pub fn dsl() -> Language
Expand description
The string editing lambda::Language
defines the following operations:
"0": ptp!(int)
"+1": ptp!(@arrow[tp!(int), tp!(int)])
"-1": ptp!(@arrow[tp!(int), tp!(int)])
"len": ptp!(@arrow[tp!(str), tp!(int)])
"empty_str": ptp!(str)
"lower": ptp!(@arrow[tp!(str), tp!(str)])
"upper": ptp!(@arrow[tp!(str), tp!(str)])
"concat": ptp!(@arrow[tp!(str), tp!(str), tp!(str)])
"slice": ptp!(@arrow[tp!(int), tp!(int), tp!(str), tp!(str)])
"nth": ptp!(@arrow[tp!(int), tp!(list(tp!(str))), tp!(str)])
"map": ptp!(0, 1; @arrow[
tp!(@arrow[tp!(0), tp!(1)]),
tp!(list(tp!(0))),
tp!(list(tp!(1))),
])
"strip": ptp!(@arrow[tp!(str), tp!(str)])
"split": ptp!(@arrow[tp!(char), tp!(str), tp!(list(tp!(str)))])
"join": ptp!(@arrow[tp!(str), tp!(list(tp!(str))), tp!(str)])
"char->str": ptp!(@arrow[tp!(char), tp!(str)])
"space": ptp!(char)
".": ptp!(char)
",": ptp!(char)
"<": ptp!(char)
">": ptp!(char)
"/": ptp!(char)
"@": ptp!(char)
"-": ptp!(char)
"|": ptp!(char)