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)