Type error: Illegal variable type for this position - Prolog

Узнай цену своей работы

Формулировка задачи:

Нужно разделить список на два списка: в первом - N элементов с начала исходного списка, во втором - все что осталось. Моя попытка написать такую программу не увенчалась успехом и я не понимаю как исправить ошибку Помогите, пожалуйста. Ошибка : E;Test_Goal, pos: 199, 505 Type error: Illegal variable type for this position Курсор указывает на Tail2 в razdel(Tail, Tail1, Tail2, M).

Решение задачи: «Type error: Illegal variable type for this position»

textual
Листинг программы
domains
int=integer
intl=int*
 
predicates
split(intl,int,intl,intl)
 
clauses
split(X,0,[],X).
split([A|T],N,[A|B],E) :- N>0, N1=N-1, split(T,N1,B,E).

Объяснение кода листинга программы

  1. В этом коде используется язык программирования Prolog.
  2. Код определяет два домена: int (целое число) и intl (массив целых чисел).
  3. Также в коде определена функция split, которая принимает входные параметры X, N, A и E.
  4. Функция split используется для разделения массива X на подмассивы A и E.
  5. Если N равно 0, то возвращается пустой список для A и X для E.
  6. Если N больше 0, то функция рекурсивно вызывается для T и N-1, чтобы получить подмассив B, который добавляется к A, чтобы получить новый список E.
  7. Если N не больше 20, то код не вызывает ошибку.
  8. В этом коде нет использования функций или операторов, которые могут привести к ошибке Illegal variable type for this position.
  9. Следовательно, код не может вызвать ошибку Illegal variable type for this position.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5