TuProlog: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 482:
 
 
== Библиотеки ISO ==
 
Библиотеки ISO зависят от наличия базовых библиотек.
Эти библиотеки содержат почти все встроенные предикаты и функторы, которые являются частью стандарта ISO, и которые не являются непосредственно частью ядра tuProlog или библиотек ядра.
 
=== Предикаты ===
 
==== Типовые описания ====
 
• bound/1
 
bound(Term) синоним ground/1 предиката из BasicLibrary.
 
Операция выполняется согласно следующему правилу: bound(+term)
 
• unbound/1
 
unbound(Term) истинно если Term не является базовым (элементарным) термом (ground term).
 
Операция выполняется согласно следующему правилу: unbound(+term)
 
==== Обработка Атомов ====
 
• atom length/2
 
atom length(Atom, Length) истинно, если целочисленное Length соответствует количеству символов в имени Atom.
 
Операция выполняется согласно следующему правилу: atom length(+atom, ?integer)
 
• atom concat/3
 
atom concat(Start, End, Whole) истинно, если Whole - атом полученный путем конкатенации (объединения) символов с End до First.
 
Если Whole представлено примером, тогда все разложение Whole может быть получено путем backtracking (перебора с возвратами; отслеживания).
 
Операция выполняется согласно следующему правилу: atom concat(?atom, ?atom, +atom)
 
Операция выполняется согласно следующему правилу: atom concat(+atom, +atom, -atom)
 
• sub atom/5
 
sub atom(Atom, Before, Length, After, SubAtom) истинно, если SubAtom является субатомом Atom, с длинной Length, с Before - символами перед субатомом и After -символами за ним.
 
Является перевыполняемым.
 
Операция выполняется согласно следующему правилу: sub atom(+atom, ?integer, ?integer, ?integer, ?atom)
 
• atom chars/2
 
atom chars(Atom,List) выполняется, если List - список, чьи элементы являются одно-символьными атомами (one character atoms), в сумме создающие атом.
 
Операция выполняется согласно следующему правилу: atom chars(+atom, ?character list)
 
Операция выполняется согласно следующему правилу: atom chars(-atom, ?character list)
 
• atom codes/2
 
atom codes(Atom, List) выполняется, если List - список, чьи элементы – коды символов, соответствующие символам атома.
 
Операция выполняется согласно следующему правилу: atom codes(+atom, ?character code list)
 
Операция выполняется согласно следующему правилу: atom chars(-atom, ?character code list)
 
• char code/2
 
char code(Char, Code) выполняется, если Code – код символов, соответствующий символам Char.
 
Операция выполняется согласно следующему правилу: char code(+character, ?character code)
 
Операция выполняется согласно следующему правилу: char code(-character, +character code)
 
• number chars/2
 
number chars(Number, List) выполняется, если List – список, чьи элементы одно-символьные атомы, которые в сумме создают Number.
 
Операция выполняется согласно следующему правилу: number chars(+number, ?character list)
 
Операция выполняется согласно следующему правилу: number chars(-number, ?character list)
 
• number codes/2
 
number codes(Number, List) выполняется, если List – список, чьи элементы являются кодами одно-символьных атомов, которые в сумме создают Number.
 
Операция выполняется согласно следующему правилу: number codes(+number,?character code list)
 
Операция выполняется согласно следующему правилу: number codes(-number,?character code list)
 
=== Функторы ===
 
• Тригонометрические: sin(+expr), cos(+expr), atan(+expr).
 
• Логарифмические: exp(+expr), log(+expr), sqrt(+expr).
 
• Модульные: abs(+expr), sign(+Expr).
 
• Округляющие: floor(+expr), ceiling(+expr), round(+expr), truncate(+expr), float(+expr), float integer part(+expr), float fractional part(+expr).
 
• Деление целых чисел: div(+expr, +expr), mod(+expr, +expr), rem(+expr, +expr).
 
=== Операторы ===
 
[http://img440.imageshack.us/img440/6360/operators.jpg Операторы]
 
=== Признаки ===
 
[http://img338.imageshack.us/img338/5286/flagje.jpg Признаки]