Вопросы по теме 'successor-arithmetics'

Создать экземпляр переменной типа в Haskell
EDIT: Решено. Я не знал, что включение расширения языка в исходном файле не включает расширение языка в GHCi. Решение было :set FlexibleContexts в GHCi. Недавно я обнаружил, что объявления типов в классах и экземплярах Haskell являются...
1007 просмотров

Натуральное число в SWI-прологе и рекурсивной процедуре
У меня следующая процедура для натурального числа - это SWI-пролог: natural_number(0). natural_number(s(X)) :- natural_number(X). Теперь я хочу сделать рекурсивный вызов, который остановится, когда мы дойдем до 0. Мое натуральное число...
2719 просмотров
schedule 09.10.2022

Продолжайте получать сообщение об ошибке. Аргументы недостаточно конкретизированы. Не могу понять, почему
Продолжайте получать ошибку Arguments are not sufficiently instantiated для правила умножения на сложение, которое я написал, как показано ниже. mult(_, 0, 0). %base case for multiplying by 0 mult(X, 1, X)....
684 просмотров

Матрица как список пролога строки матрицы
Мне нужно представить матрицу в виде списка строк матрицы с таким термином [[a,b],[c,d]] с представлением чисел в нотации Пеано. Мне нужно получить строку матрицы ow(X,N,C) : C - N-я строка матрицы X. и столбец матрицы column(X,N,C) : C —...
572 просмотров
schedule 22.05.2022

Stackoverflow в арифметике Prolog Peano
Я пишу арифметику Пеано, чтобы лучше изучить Пролог. Ниже приведен код, который я придумал, и он кажется эквивалентным тому, что я видел в других местах в Интернете: add(X,z,X). add(X,s(Y),s(Z)) :- add(X,Y,Z). mult(_,z,z). mult(X,s(Y),W) :-...
2096 просмотров

Как я могу переписать + 1 (плюс один) на S (succ) в Coq?
У меня есть следующая лемма с неполным доказательством: Lemma (s_is_plus_one : forall n:nat, S n = n + 1). Proof. intros. reflexivity. Qed. Это доказательство не срабатывает с Unable to unify "n + 1" with "S n". Кажется, что...
1314 просмотров
schedule 19.06.2023

Рекурсивное предложение Prolog
У меня есть следующая база знаний, которая должна добавить два аргумента и дать результаты: add(0,X,X). add(succ(X),Y,succ(R)):- add(X,Y,R). Теперь это мой запрос: ?- add(succ(succ(succ(0))), succ(succ(0)), Result). 0 не объединяется...
82 просмотров
schedule 04.05.2023

Рекурсивное сложение в Прологе
База знаний add(0,Y,Y). // clause 1 add(succ(X),Y,succ(Z)) :- add(X,Y,Z). // clause 2 Запрос add(succ(succ(succ(0))), succ(succ(0)), R) Трассировка Call: (6) add(succ(succ(succ(0))), succ(succ(0)), R) Call: (7)...
2829 просмотров

Рекурсивное сложение в Прологе с числами Пеано не работает
Сейчас я пытаюсь попрактиковаться в Прологе. Я только начал и столкнулся с проблемой, которую не совсем понимаю. Я хочу рекурсивно определить, является ли одно число Пеано удвоением другого. Я пытался решить это так: isDouble(0, X,X)....
502 просмотров
schedule 10.07.2022

Как узнать, является ли число кратным другому
Глядя на код ниже: multiple(X,0). multiple(X,Y) :- lt(0,X), lt(0,Y), diff(Y,X,D), multiple(X,D). Бывает, что-то не так. Для справки: lt/2 определяет, меньше ли первый аргумент второго. diff/3 определяет, равен ли третий аргумент первому...
90 просмотров

(SWI-PL) Я не могу понять, как создать правило пролога для соответствия этому конкретному типу ввода
Итак, у меня есть домашнее задание, в котором я дал следующий код: numeral(0). numeral(succ(X)) :- numeral(X). numeral(X+Y) :- numeral(X), numeral(Y). add(0,X,X). add(succ(X),Y,succ(Z)) :- add(X,Y,Z). И я должен определить предикат пролога...
74 просмотров
schedule 01.03.2022