Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
Firth
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 6
1

Что такое _G1318?

21.12.2011, 17:35. Просмотров 420. Ответов 2
Метки нет (Все метки)

Определите предикат argrpl(Term,N,Arg,NTerm), заменяющий N-ый компонент в структуре Term на новый компонент Arg и помещающий результат в NTerm.

?-argrpl(f(a,b,c),2,z,R).
R = f(a,z,c)

Решил сначала просто написать то что элемент заменяет

Prolog
1
2
3
4
argrpl([_|T],1,Arg,[Arg|T]).
argrpl([_|T],N,Arg,[_|T1]):-N>1,
 M is N-1,
   argrpl(T,M,Arg,T1).
проверяю как работает и что я вижу?

?- argrpl([a,b,c],2,z,X).
X = [_G1318, z, c]
эммм и что такое _G1318?
С цифрами тоже самое, только _G*** меняется.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2011, 17:35
Ответы с готовыми решениями:

Что такое successor
Это пример: sum(,0). sum(,S):-sum(Is,S). sum(, s(Z) ):-sum(,Z). ...

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с...

Что такое IIS и что такое PWS? Почему одно без другого не работает?
вот уже второй день пытаюсь немного разобраться в АСП. накидал небольшую...

Что такое напряжение и что такое сила тока с позиции заряженных частиц
Объясните пожалуйста, что такое напряжение и что такое сила тока с позиции...

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

2
Грымзик
2481 / 1457 / 35
Регистрация: 14.09.2009
Сообщений: 2,742
21.12.2011, 18:16 2
Это идентификатор переменной. У вас она так и не принимает значения. Второе правило исправьте на
argrpl([H|T],N,Arg,[H|T1]):-...
0
Firth
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 6
21.12.2011, 18:32  [ТС] 3
Вот спасибо!И еще вопросик.
Собственно воспользуемся этой функцией для решения главной задачи озвученной выше.

Prolog
1
2
3
4
5
6
7
8
9
заменить([_|T],1,Arg,[Arg|T]).
заменить([H|T],N,Arg,[H|T1]):-N>1,    %вспомогательная функция для списков.
 M is N-1,
   заменить(T,M,Arg,T1).
 
argrpl(Term,N,Arg,NTerm):-
Term=..[X],                                      %Превращаем структуру в список
заменить(X,N+1,Arg,T),                     %Заменяем н-ый элемент
NTerm=..[T].                                    %превращаем обратно в структуру
Выдает ложь.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2011, 18:32

Что такое монитор и что такое мьютекс? Это же разные вещи?
Здравствуйте. В разных айти-статьях по-разному используют эти термины, причём...

Объект TDictionary. Что такое ключ и что такое значение?
Из прочитанного в гугле понял что это нечто наподобие какого-то словаря: ...

Что такое метод equals() и что такое класс Object
Ответи на два вопроса очень надо 1) Что такое метод equals(). Чем он...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru