retract

Сегодня tiddlyhost.com на профилактике, на который я постоянно отсылаю за примерами и это нарушило установленный ритм публикации. Но я подумал, что сослаться можно по памяти на функции, которые я оформил там по принятой схеме заранее. А существо дела, то есть исходная информация у нас пока на месте … Если что не так, то позднее можно будет исправить.

Итак, сегодня у нас retract - который удаляет факт или правило Pilog.

И, соответственно, retract/1 - предикат Pilog, удаляющий факт или правило.

software-lab.de/doc/refR.html#retract

Кажется, что все ясно, но в связи с особым случаем, примеры со ссылкой на исходную авторскую документацию.

: (be a (1))
-> a
: (be a (2))
-> a
: (be a (3))
-> a

: (retract '(a (2)))
-> (((1)) ((3)))

:  (? (a @N))
 @N=1
 @N=3
-> NIL
: (be a (1))
-> a
: (be a (2))
-> a
: (be a (3))
-> a

: (? (retract (a 2)))
-> T
: (rules 'a)
1 (be a (1))
2 (be a (3))
-> a

Почему я так не делал раньше? Не знал. Просто скопировал код сюда и получил такое представление. Приятно. Теперь буду пользоваться.

Да … да … я тоже не увидел в примере retact/1 … Но пока прокомментировать, почему, не могу. Возможно, что это станет ясно, после того как … узнаем больше о Pilog. Ошибка описания в документации или так надо!?