Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 31

Как узнать что возвращает предикат

08.05.2011, 16:23. Показов 1866. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Prolog
1
2
3
4
% замена элемента с указанной позицией
 
list_replace(X,1,[_|T],[X|T]).
list_replace(X,I,[H|T],[H|L]):-I1 is I-1,list_replace(X,I1,T,L).
что пролог должен выдавать в ответе по спискам? True/ false или численные какие-либо значения? и как у него это "спросить"?
Спасибо огроменное!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.05.2011, 16:23
Ответы с готовыми решениями:

определите предикат status, позволяющий узнать к какой категории населения относится указанный человек
Очень срочно нужно решить задачу Используя факты, имеющиеся в программе family.pro, определите предикат status, позволяющий узнать к...

Узнать, что возвращает функция
Функция возвращает указатель на неизвестную структуру но как определить что содержится в структуре? это нашел в интернете ...

Узнать что возвращает функция
Вопрос уже задавал раньше, но никто не смог ответить :) В общем есть функция которая возвращает указатель на неизвестно что :) ....

4
 Аватар для emppu2007
92 / 92 / 6
Регистрация: 04.05.2011
Сообщений: 171
08.05.2011, 17:04
Тэк-с...Интуитивно скажу, может не точно.
В общем, даёшь на вход:
list_replace(d,3,[a,b,c],L).

На выходе получишь:
L = [a,b,d].

Пролога сейчас на компе нет, поэтому не исключено, что ошибаюсь.
1
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 31
08.05.2011, 17:17  [ТС]
Все так и есть! А можешь объяснить что здесь и как? ну никак эти списки не могу понять.... Спасибо заранее!
0
 Аватар для emppu2007
92 / 92 / 6
Регистрация: 04.05.2011
Сообщений: 171
08.05.2011, 18:06
Вызываешь list_replace(d,3,[a,b,c],What).
Так как второй аргумент не 1, вызывается второй вариант.
X=d, I=3, H=a, T=[b,c]. Программа должна подобрать такое What, чтобы list_replace вернул значение true. What=[a|L]
I1=2. Далее снова обращаемся к list_replace.
При новом обращении X=d, I=2, H=b, T=[c] L(с предыдущего шага)=[b|L(текущая)].
I1=1.
Снова вызываем list_replace. На этот раз второй аргумент равен 1, поэтому попадаем в первый вариант list_replace.
X=d, T=[], L(с предыдущего шага)=[d].
Собираем наши L, What=[a,b,d].
0
Заблокирован
08.05.2011, 22:21
Цитата Сообщение от milagros2307 Посмотреть сообщение
что пролог должен выдавать в ответе по спискам? True/ false или численные какие-либо значения? и как у него это "спросить"?
зависит от диалекта пролога, в некоторых диалектах четко описывается какие параметры являются входными, а какие - результатом. Но даже там есть ключевое слово anyflow, при этом программа при выполнении решает что возвращать.
Например, предикат. вычисляющий длину списка может использоваться для сравнения длины списка с конкретным числом. типа
Prolog
1
2
3
4
llen(List, 0, Len). % если Len была не означена - то получает значение длины списка
%или
Len = 3, %теперь Len имеет значение 3
llen(List, 0, Len). %то же самое что llen(List, 0, 3), т.е. длина сразу сравнивается с 3
что-то мне подсказывает что anyflow не будет работать если использовать левостороннюю рекурсию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2011, 22:21
Помогаю со студенческими работами здесь

Как узнать сколько записей возвращает Command?
Как узнать сколько записей возвращает Command? Очень надо.

Как узнать, какой из IP адресов возвращает скачивание файла
Господа, подскажите, как узнать, какой из IP адресов возвращает скачивание файла? 79.172.69.25:81 79.172.77.234:81 ...

Как узнать, что картинка полностью загружена, чтобы узнать её размеры
Здраствуйте ! Делаю галерею. Мне нужно узнать когда картинка загрузица полносттю, чтобы узнать её размеры. Подскажыте, читал ето делаеца...

Функция возвращает множество значений. Как узнать их количество и записать в список(таблицу)?
Привет, всем, я новичок в lua, и ответа на вопрос в теме не нашлось в интернете. Есть функция PolygonShape:getPoints(), которая...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru