• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Пролог

  • Автор темы Автор темы shrek=)
  • Дата начала Дата начала

shrek=)

Студент БГПУ
Регистрация
6 Фев 2010
Сообщения
420
Реакции
6
Баллы
0
Пролог

Доброго времени суток.
Есть ли у нас на форуме люди способные помочь с пролог'ом?
Очень буду признателен.
Создать предикат определяющий количество четных элементов многоуровнего списка(элемент считается четным если состоит из четного числа атомов)
 
Додумался сам:
Код:
len([],0) :- !.
len([_|T], N) :- len(T,N1), N is N1+1.

ce([],0):-!.
ce([X],1):-atomic(X), X mod 2 =:= 0,!.
ce([X],1):-len(X,L), L mod 2 =:= 0,!.
ce([X|T],N):-atomic(X),X mod 2 =:= 0, ce(T,N1), N is N1+1,!.
ce([X|T],N):-atomic(X), X mod 2 =\= 0, ce(T,N),!.
ce([X|T],N):-len(X,L),L mod 2 =:= 0, ce(T,N1), N is N1+1,!.
ce([_|T],N):-ce(T,N).
Оказалось не так то уж и сложно.
 
Назад
Сверху