Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Ошибки/опечатки в учебнике "Современное логическое программирование на языке VIP 7.5"
Ответ
 
Опции темы Опции просмотра
  (#16 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 06.12.2015, 17:59

Цитата:
Сообщение от SergeMukhin78 Посмотреть сообщение
single - это видимо procedure
и single-факт и procedure-предикат. Так наверное правильно.
Цитата:
Сообщение от SergeMukhin78 Посмотреть сообщение
Зацикливание возможно так же как и у nondeterm.
Да, конечно. Примеры в голове крутятся про зацикливание у multi-предикатов (например, что-то типа repeat). И такие примеры очень просты для понимания. А nondeterm тоже может зациклится, но надо придумать понятный пример. Однако сейчас говорить о примерах поздно или очень рано
Цитата:
Сообщение от SergeMukhin78 Посмотреть сообщение
я что-то не заметил.
Интересно?! У меня в оригинал-макете красиво всё выделяется. Правда способы выделения установлены издательством. Я просто выполнял эти требования.
Ответить с цитированием
  (#17 (permalink)) Старый
MosAic MosAic вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.12.2015
По умолчанию 10.12.2015, 01:37

Очепятка в последней строке таблицы на стр. 38 - "неравно"

Можно уточнить? Судя по примерам 14 на стр. 35 и 16 на стр. 36, на этапе компиляции таки проверяется вхождение переменной в сопоставляемый терм? Только на этапе выполнения проверка не делается?

Понимая что терминология устоявшаяся, все же хочу спросить почему операция "должно унифицироваться" так называется? Ведь если унифицирует только связанные переменные, то логично было бы и назвать ее "должно сопоставляться по шаблону" или коротко "должно сопоставляться". Или я плохо разобрался в сути?
Ответить с цитированием
  (#18 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 10.12.2015, 10:17

Цитата:
Сообщение от MosAic Посмотреть сообщение
Можно уточнить? Судя по примерам 14 на стр. 35 и 16 на стр. 36, на этапе компиляции таки проверяется вхождение переменной в сопоставляемый терм? Только на этапе выполнения проверка не делается?
Проверка вхождения не выполняется вообще. Visual Prolog, как единственный типизированный Пролог, проверяет типы данных. В случае X=s(X) слева может быть, например, число типа real, а справа домен s(real), следовательно типы унифицируемых объектов не согласуются и до собственно унификации дело просто не доходит. Аналогично и в случае X=[X,20,30]. Слева число типа integer, справа - список целых чисел. Следовательно облом ещё на этапе компиляции, как и в первом случае. Это одна из сильных сторон Visual Prolog, которая отсутствует в ISO-Прологах, ибо они нетипизированы. Поэтому в Visual Prolog львиная доля ошибок отлавливается на этапе компиляции, а в ISO-Прологах борьба с такими ошибками происходит на этапе выполнения.
Цитата:
Сообщение от MosAic Посмотреть сообщение
Понимая что терминология устоявшаяся, все же хочу спросить почему операция "должно унифицироваться" так называется? Ведь если унифицирует только связанные переменные, то логично было бы и назвать ее "должно сопоставляться по шаблону" или коротко "должно сопоставляться". Или я плохо разобрался в сути?
Наверное это устоявшаяся терминология. Сопоставление с образцом - это частный случай унификации. О сопоставлении с образцом можно было и не говорить. Считайте, что в Visual Prolog везде и всюду унификация, но с одной особенностью - результат работы программы должен быть основным термом.
По поводу терминологии. Фраза "должно унифицироваться" является калькой фразы "must unify", которую использовали авторы Visaul Prolog в качестве названия операции "==". Я просто дословно перевёл.

Последний раз редактировалось Винитарх; 10.12.2015 в 18:30
Ответить с цитированием
  (#19 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 10.12.2015, 10:20

Цитата:
Сообщение от MosAic Посмотреть сообщение
Очепятка в последней строке таблицы на стр. 38 - "неравно"
Я не увидел опечатки. Нельзя ли точнее указать?
Ответить с цитированием
  (#20 (permalink)) Старый
MosAic MosAic вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.12.2015
По умолчанию 10.12.2015, 15:33

Спасибо за разъяснения.

"не равно". Есть еще слово "нерАвно", но оно имеет другой смысл.
Ответить с цитированием
Ads.
  (#21 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 10.12.2015, 18:29

Цитата:
Сообщение от MosAic Посмотреть сообщение
"не равно"
Да, конечно, надо писать раздельно.
А я искал смысловую ошибку.
Ответить с цитированием
  (#22 (permalink)) Старый
SerikIm SerikIm вне форума
Новичок
 
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.06.2008
По умолчанию 15.12.2015, 10:16

Здравствуйте, Винитарх.
Вчера только получил книгу на почте. Книга получилась добротная. Спасибо за труд.
Теперь об опечатках.
На стр.35 в таблице строка 10. В колонке принимаемых значений надо бы (мне кажется) уточнить: про Z ничего не сказано, откуда "Y=8".
Ответить с цитированием
  (#23 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 15.12.2015, 18:50

Цитата:
Сообщение от SerikIm Посмотреть сообщение
Вчера только получил книгу на почте. Книга получилась добротная. Спасибо за труд.

Служу трудовому народу/Советскому Союзу/России! (нужное подчеркнуть )
Цитата:
Сообщение от SerikIm Посмотреть сообщение
На стр.35 в таблице строка 10. В колонке принимаемых значений надо бы (мне кажется) уточнить: про Z ничего не сказано, откуда "Y=8".
Спасибо, это уже было в сообщении №2: Ошибки/опечатки в учебнике "Современное логическое программирование на языке VIP 7.5"
Ответить с цитированием
  (#24 (permalink)) Старый
tumanovalex tumanovalex вне форума
Member
 
Сообщений: 304
Сказал(а) спасибо: 12
Поблагодарили 1 раз в 1 сообщении
Регистрация: 26.03.2004
Адрес: Москва
По умолчанию 27.12.2015, 12:36

А можно как-то структурировать сообщения пользователей о замеченных опечатках? Например по страницам книги. А то одни и те же сообщения об опечатках будут идти от каждого нового читателя Вашей книги. Не знаю, прав ли я, но на стр. 39 под таблицей второй абзац:
X = 3 и 6 = Z результат Истина, Ложь. Не понятно, почему 6 = Z дает ложь.
Ответить с цитированием
Ads
  (#25 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 27.12.2015, 16:05

Цитата:
Сообщение от tumanovalex Посмотреть сообщение
А можно как-то структурировать сообщения пользователей о замеченных опечатках?
Таких средств внутри одной ветки нет. Можно делать только так, как в Рубрикаторе форума Рубрикатор
Цитата:
Сообщение от tumanovalex Посмотреть сообщение
на стр. 39 под таблицей второй абзац:
X = 3 и 6 = Z результат Истина, Ложь. Не понятно, почему 6 = Z дает ложь.
Вы неправильно поняли текст. Там написано :
Цитата:
Результат операций унификации X=3 и 6=Z принимает значение из области {Истина,Ложь}. Но к этим значениям не применима операция «должно унифицироваться». Операция «должно унифицироваться» применяется только к основным термам.
Предикат 6=Z не обязательно даёт Ложь. Он может давать и Истину. Просто эти значения (Истина и Ложь) нельзя унифицировать/сравнивать. Это не булевы значения. Это значения из области истинности предикатов. А булевы значения это термы true() и false().
Книжный фрагмент приведённого текста следует понимать так. Результат операции унификации X=3 принимает значение Истина или Ложь. И результат операции унификации 6=Z принимает значение Истина или Ложь. Эти значения (Истина или Ложь) видит только машина логического вывода и эти значения нельзя явно/непосредственно унифицировать.
Знак равно в Visual Prolog это предикат, а не операция булевого сравнения.
Вот такой код в Visual Prolog даст ошибку:
Visual Prolog Код:
Q=readLine(),W=readLine(),
(Q="12")==(W="32"),write("Сравнения одинаковы"),
Чтобы не было ошибки, в коде надо получить, к примеру, булевы значения при сравнении, а потом их унифицировать:
Visual Prolog Код:
Q=readLine(),W=readLine(),
X = if Q="12" then true() else false() end if,
Y = if W="32" then true() else false() end if,
X==Y,
write("Сравнения одинаковы"),
Ответить с цитированием
  (#26 (permalink)) Старый
SerikIm SerikIm вне форума
Новичок
 
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.06.2008
По умолчанию 27.12.2015, 20:55

На стр.134 в примере 11.5 после оптимизированной программы видимо остался текст старой, неоптимизированной.
Ответить с цитированием
  (#27 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 27.12.2015, 23:37

Цитата:
Сообщение от SerikIm Посмотреть сообщение
На стр.134 в примере 11.5 после оптимизированной программы видимо остался текст старой, неоптимизированной.
Да, остался. Спасибо.
17 строк лишних. Без них 11 глава была бы на 1 страницу меньше, а книга стоила бы на 70 коп. дешевле.
Ответить с цитированием
  (#28 (permalink)) Старый
MosAic MosAic вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.12.2015
По умолчанию 29.12.2015, 11:54

Здравствуйте, Винитарх. Читаю урывками, поэтому медленно. Книга по-прежнему нравится, спасибо. Правда с необходимостью "многопроходного" изучения пришлось смириться, но главное что вы этим не злоупотребляете. Ну и заметил пару мелочей. Серьезного ничего нет или совсем или потому, что я еще не все понимаю

Стр. 46, второе предложение. "...но он не будет его подтипом..." Лучше убрать "но". Если потребуется, напишу почему. Наверно это лишнее.

Стр. 63, самый последний на странице пример. Условие примера 0<X<12 следует записать как 0<=X<=12

И, таки да, поддерживаю предложение упорядочить замеченные опечатки по страницам, как в Рубрикаторе. Но не нужно туда переносить какие-то объяснения, а просто автор пишет "На стр. NNN предложение "XXX" следует читать "YYY""

Последний раз редактировалось MosAic; 29.12.2015 в 12:02
Ответить с цитированием
  (#29 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 29.12.2015, 17:12

Цитата:
Сообщение от MosAic Посмотреть сообщение
Стр. 46, второе предложение. "...но он не будет его подтипом..." Лучше убрать "но".
Согласен. Бывает, что мысли вначале ложатся на бумагу одними словами, а потом немного переформулируются, но остатки первоначальной формулировки иногда остаются, не нарушая формально синтаксис. Да и свои ошибки труднозамечаемы, ибо глаз замыливается.
Цитата:
Сообщение от MosAic Посмотреть сообщение
Стр. 63, самый последний на странице пример. Условие примера 0<X<12 следует записать как 0<=X<=12
Да. Спасибо.
Цитата:
Сообщение от MosAic Посмотреть сообщение
И, таки да, поддерживаю предложение упорядочить замеченные опечатки по страницам, как в Рубрикаторе. Но не нужно туда переносить какие-то объяснения, а просто автор пишет "На стр. NNN предложение "XXX" следует читать "YYY""
На праздниках сделаю, тем более, что пока это необременительно - опечаток найдено не более десяти.
Ответить с цитированием
  (#30 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 21.01.2016, 23:21

Цитата:
Сообщение от Винитарх Посмотреть сообщение
На праздниках сделаю, тем более, что пока это необременительно - опечаток найдено не более десяти.
Сделал. Правда опечаток/ошибок найдено уже 11.
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ставлю систему "с нуля" после сбоя. Какие "работы" по тестированию железа полезны? russcand Любые вопросы от новичков 14 01.09.2011 00:27
Нужен курсач карточная "Цыганка" игра на языке пролог Prudnikovvv Prolog 0 20.11.2010 17:34
Инструкция по адресу "0x436b10f" обратилась к памяти "0x03793dac". ВИРУС???? skazka Windows XP 5 21.03.2010 01:21
Игра "Агрессия" при запуске выдает ошибки. Лог ошибки в теме. rauchend Любые вопросы от новичков 9 20.02.2009 14:51
После подключения кнопок "power" и "reset" компьютер перестал включаться. Лаборант-Шурупов Любые вопросы от новичков 1 25.01.2009 15:15
Программирование на CLIPS. Игра "пятнашки" bunya Информационные технологии 2 13.11.2008 01:27
Программирование "мышки" какую использовать функцию sc_pt С/С++ 3 23.05.2007 00:34
Добавить кнопки "свернуть" и "восстановить" к окну готового dialog-based приложения Lesat Visual C++ 2 07.01.2006 04:34
Курсовая "Параметрическое программирование" Серж. Вопросы начинающих программистов 0 30.07.2004 06:51
После компиляции кнопки caption на "Пуск" не отображаются на русском языке Anonymous Visual C++ 1 02.02.2004 22:21
Как сделать чтобы вместо кнопок "Да" и "Нет" высвечивалось украинсие "Так" и "Ні" Форсаж Delphi 5 19.07.2003 19:30
Исправление системной ошибки "error LNK2001" в программировании Elena_gr Вопросы начинающих программистов 3 18.06.2003 16:28



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов