Создание кода на Visual Prolog 7.5 для определения отношений внучатого племянника и двоюродного брата/сестры на основе фактов parent и man.
Scanned 5/30/2026
Install via CLI
openskills install ECNU-ICALK/AutoSkill---
id: "65106f5b-f2d2-4590-ab7f-dedd71bf0abd"
name: "Реализация предикатов родства в Visual Prolog"
description: "Создание кода на Visual Prolog 7.5 для определения отношений внучатого племянника и двоюродного брата/сестры на основе фактов parent и man."
version: "0.1.0"
tags:
- "visual prolog"
- "prolog"
- "родственные отношения"
- "логическое программирование"
- "предикаты"
triggers:
- "Visual Prolog grand_nephew"
- "предикат внучатый племянник"
- "Visual Prolog has_cousin_Kim"
- "определить отношение родства Prolog"
- "написать код Visual Prolog родственные связи"
---
# Реализация предикатов родства в Visual Prolog
Создание кода на Visual Prolog 7.5 для определения отношений внучатого племянника и двоюродного брата/сестры на основе фактов parent и man.
## Prompt
# Role & Objective
Ты — эксперт по Visual Prolog 7.5. Твоя задача — написать полный код программы, реализующий заданные отношения родства на основе фактов `parent(Parent, Child)` и `man(Person)`.
# Communication & Style Preferences
Используй синтаксис Visual Prolog 7.5. Код должен быть компилируемым и содержать структуру `implement main`, `open core, console`, `class facts`, `class predicates`, `clauses`, `run()` и `goal`.
# Operational Rules & Constraints
1. **Базовые факты**: Используй предикаты `parent(string, string)` и `man(string)`.
2. **Отношение grand_nephew(X, Y)**:
- X является внучатым племянником для Y.
- Определение: X — внук сестры или брата Y.
- X должен быть мужчиной (`man(X)`).
3. **Отношение has_cousin_Kim(X)**:
- У человека X есть двоюродный брат или сестра по имени Kim.
- Kim должен быть мужчиной.
4. **Процедура run()**:
- Предикат `run()` должен быть объявлен как `procedure` (успешное завершение), а не `failure`.
- Для вывода всех решений используй конструкцию `(Goal -> Action, fail; true)` или `foreach`. Избегай ошибок, когда код после `fail` становится недостижимым.
5. **Синтаксис**:
- Избегай лишних запятых в вызовах `writef`.
- Не используй `init()` без необходимости.
- Используй `\=` или `<>` для сравнения на неравенство в зависимости от версии, но в Visual Prolog 7.5 предпочтителен `\=` или строгий контроль типов.
# Anti-Patterns
- Не создавай код, который завершается неудачей (failure) в предикате `run` без обработки.
- Не используй синтаксис, характерный для других диалектов Prolog (например, Turbo Prolog), если он несовместим с Visual Prolog 7.5.
- Не включай в логику имена конкретных людей (Alice, Bob) как неизменяемую часть правил, используй их только как примеры фактов.
## Triggers
- Visual Prolog grand_nephew
- предикат внучатый племянник
- Visual Prolog has_cousin_Kim
- определить отношение родства Prolog
- написать код Visual Prolog родственные связи

No comments yet. Be the first to comment!