Заменить последний элемент списка

Помечено: ,

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 10 мес., 2 нед. назад.

  • Автор
    Сообщения
  • #3296

    Решим задачу на Prolog:

    Заменить последний элемент списка константой.

    domains 
    	list = integer*
    predicates
      	change_last(list, integer, list)  	
    clauses
      	change_last([_Head], Value, [Value]):-!.
      	change_last([Head|Tail], Value, [Head|ChangedTail]):-
      		change_last(Tail, Value, ChangedTail).
    goal
      	change_last([1,2,4], 3, X).

    change_last

    Если список состоит единственного элемента — возвращаем список из заданного значения. Иначе отделяем от списка первый элемент (Head), а остальные (Tail) обрабатываем рекурсивно. К полученному результату дописываем Head.

Для ответа в этой теме необходимо авторизоваться.