Все предикаты преобразования типов действуют в обе стороны
((i,о) и (o,i)), а случай (i,i) проверяет истинность (не для
предиката real). Преобразование между типами symbol и string, a
также между типами integer и real производится автоматически.
char_int(знак,целое)
(char,integer):(i,о)(о,i)(i,i)
Знак <--> соответствующий ASCII-код как целое число.
str_char(знак_как_строка,знак)
(string,char): (i,o)(o,i)(i,i)
Один знак как строка <--> знак.
str_int(строка,целое)
(string,integer): (i,o)(o,i)(i,i)
Строка, представляющая целое число <--> целое число.
str_real(строка,действительное)
(string,real):(i,o)(o,i).
Строка, представляющая действительное число <--> действительное
число. Внимание, случай (i,i) не предусмотрен!
upper_lower(строка_с_прописными,cтрока_со_строчными)
(string,string):(i,о)(о,i) (i,i)
Строка с прописными буквами <---> строка со строчными буквами.
Работает только с латинскими буквами.
Для примера можно запустить задачу без исходного текста и задать
цели:
Goal: ответ (без количества решений
char_int('A',X) Х=65
char_int(X,66) Х=В
char_lnt("A",X) Type error
str_ohar("A",X) Х=А
str_char('A',X) Type error
str..char("A",'A') True
str_lnt("0012",X) X=12
str_real("1.0e3",X) Х=1000