Сделать из списка число - Prolog

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

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

Пусть дан список [1,2,3] надо из него получить число 123 пытался сделать что-то типа
Листинг программы
  1. foo([], 0).
  2. foo([H|T],X) :- foo(T, X1), X is X1+H*10**(length(T,)).
но непонятно, как использовать в данном случае length

Решение задачи: «Сделать из списка число»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. l2i(intl,int,int)
  7. task(intl,int)
  8.  
  9. clauses
  10. l2i([],K,K).
  11. l2i([H|T],A,R) :- A1=A*10+H, l2i(T,A1,R).
  12.  
  13. task(X,Y) :- l2i(X,0,Y).

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

  1. В этом коде используется язык программирования Prolog.
  2. Код содержит два домена: int (целое число) и intl (массив целых чисел).
  3. Есть две процедуры: l2i и task.
  4. Процедура l2i принимает три аргумента: intl (массив целых чисел), A (целое число) и R (результат).
  5. Если массив пуст, то результат равен самому первому аргументу.
  6. Если в массиве есть числа, то результат равен сумме чисел в массиве, умноженной на 10 и плюс первое число в массиве.
  7. Процедура task принимает два аргумента: X (массив целых чисел) и Y (результат).
  8. В процедуре task используется процедура l2i для преобразования массива в число.
  9. Результатом выполнения кода будет число, полученное из массива.

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы