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

Вывести каждый элемент списка на новой строке

14.10.2015, 09:21. Показов 7014. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Интерпритация - swi-prolog
Prolog
1
2
3
4
5
6
7
8
dogs(["лайка","борзая","дог","болонка"]).
/*
 Разделение на голову и хвост
 [Head|Tail]
*/
print_dogs([]).
print_dogs([X|Y]) :- write(X),nl,
print_dogs([Y]).
Выводит на запрос
?- dogs(X), print_list(X).
[]
..
[]
А должен
?- dogs(X), print_list(X).
лайка
...
болонка
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.10.2015, 09:21
Ответы с готовыми решениями:

Разделить каждый элемент списка на 2
дан список элементы которого натуральные числа. разделить каждый элемент на 2

Умножить каждый элемент заданного списка на 2
Дан список, элементы которого натуральные числа. Умножить каждый элемент на 2. Помогите пожалуйста, совсем ничего не понимаю в прологе.

Функция, удаляющая из списка каждый k-ый элемент
Помогите пожалуйста. Опишите функцию, удаляющую из списка каждый k-ый элемент.

11
 Аватар для Aleator
102 / 87 / 17
Регистрация: 04.05.2011
Сообщений: 1,330
14.10.2015, 11:36
Лучший ответ Сообщение было отмечено Alexey_Scherbak как решение

Решение

Prolog
1
2
3
4
5
6
7
dogs(['лайка','борзая','дог','болонка']).
 
% Разделение на голову и хвост
% [Head|Tail]
 
print_dogs([]):- !.
print_dogs([X|Y]):- writeln(X), print_dogs(Y).
2
 Аватар для Aleator
102 / 87 / 17
Регистрация: 04.05.2011
Сообщений: 1,330
14.10.2015, 11:39
Тестирование
Миниатюры
Вывести каждый элемент списка на новой строке  
1
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
15.10.2015, 13:34
Prolog
1
2
3
4
5
6
7
8
:- set_prolog_flag(double_quotes, string).
 
dogs(["лайка","борзая","дог","болонка"]).
 
print_dogs([]).
print_dogs([X|Y]) :-
    write(X), nl,
    print_dogs(Y).
1
4 / 4 / 0
Регистрация: 13.05.2013
Сообщений: 114
17.10.2015, 10:28  [ТС]
таак, а что делает :- set_prolog_flag(double_quotes, string).

Добавлено через 2 часа 41 минуту
Понял, по умолчанию в двойных кавычках не обязательно сроки, а
Prolog
1
:- set_prolog_flag(double_quotes, string).
принудительно задаёт значениям, в двойных кавычках тип string.
А почему в других программах не надо было это указывать, всё и так работало?
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
17.10.2015, 17:41
Цитата Сообщение от Alexey_Scherbak Посмотреть сообщение
А почему в других программах не надо было это указывать, всё и так работало?
И для SWI уже не надо указывать, но раньше, и во многих других реализациях, двойные кавычки указывали на список кодов. Это и сейчас удобно, если работать с DC-грамматиками, например. Predicate current_prolog_flag/2 Ну, такова особенность... Плюс, подчёркнуто, т.к. Aleator преобразовал ваш dogs к списку атомов, может версия Prolog другая.
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
18.10.2015, 02:39
Цитата Сообщение от arlat Посмотреть сообщение
может версия Prolog другая
Там вроде совсем недавно по этому вопросу сделали какие-то перестановки, успел уже наступить на эти грабли.. Не просветите ли кратко - что именно поменяли и с какой версии?
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
18.10.2015, 12:13
Цитата Сообщение от Black Fregat Посмотреть сообщение
что именно поменяли и с какой версии
5 SWI-Prolog extensions В какой-то из стабильных 6.x.x сделали по умолчанию, дабы облегчить переход на 7.x
Цитата Сообщение от Black Fregat Посмотреть сообщение
успел уже наступить на эти грабли
Надо следить... Если предполагается разная обработка, но удобно в коде двойные кавычки, сразу ставлю в начале файла директиву
Prolog
1
:- set_prolog_flag(double_quotes, string).
потом, где надо
Prolog
1
:- set_prolog_flag(double_quotes, codes).
потом возвращаю в string, а что делать... До кучи ещё частенько
Prolog
1
:- style_check(-atom).
чтобы на большую строку, типа SQL-запроса, не ругался, и, не ставить \с для лучшего вида Character Escape Syntax и Predicate style_check/1
2
4 / 4 / 0
Регистрация: 13.05.2013
Сообщений: 114
19.10.2015, 06:32  [ТС]
У меня получается 7
Bash
1
2
3
4
5
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3)
Copyright (c) 1990-2015 University of Amsterdam, VU Amsterdam
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit [url]http://www.swi-prolog.org[/url] for details.
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
19.10.2015, 09:33
Цитата Сообщение от Alexey_Scherbak Посмотреть сообщение
У меня получается 7
Да, и, к тому же, стабильная версия. У кого нет специфики, типа использование, как встроенной системы, то можно смело переходить на 7.2.3. Единственное, что надо отслеживать, 32 bits или 64 bits, если распространять... что собственно и для 6.x.x так же.
0
4 / 4 / 0
Регистрация: 13.05.2013
Сообщений: 114
19.10.2015, 17:40  [ТС]
под встроенной Вы имеете ввиду использование в приложениях на pyton/C++...?
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
19.10.2015, 17:44
Цитата Сообщение от Alexey_Scherbak Посмотреть сообщение
под встроенной Вы имеете ввиду использование в приложениях на pyton/C++
Да, хотя и в этом случае вряд ли будут проблемы с 7.2.3. Все ведь, как обычно, и хотел бы на новую версию, а нельзя, если промышленная эксплуатация нормально работает и на 6.6.6
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2015, 17:44
Помогаю со студенческими работами здесь

Скопировать каждый n-ный элемент списка
Помогите пожалуйста решить следующую задачу: everyNth(N, List1, List2) копирует первый и, затем, каждый n-ный элемент списка List1 в...

Возвести в квадрат каждый третий элемент списка
Помогите с зачетом! Нужно написать функцию, возводящую в квадрат каждый третий элемент списка. Например: (1 -2 3 -4 -7 4 5) (1 -2 9 -4...

Сколько раз каждый элемент списка встречается в дереве?
на входе дерево, причём любое(не обязательно бинарное!, дерево в виде списка) и список элементов, нужно вывести сколько раз каждый элемент...

Предикат, умножающий каждый элемент списка на заданное число
Определите предикат mnoz, умножающий каждый элемент числового списка на заданное число, например, истинно mnoz (, 2 ,).

Предикат, записывающий каждый третий элемент списка в новый список
Здравствуйте. Прошу помочь с написанием придиката, который будет записывать каждый третий элемент в новый список. Пишу в visual prolog 7.5....


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru