User Tag List

Страница 4 из 8 ПерваяПервая 12345678 ПоследняяПоследняя
Показано с 31 по 40 из 75

Тема: ПЗУ языка Пролог для БК0010

  1. #31

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Автор тот же, журнал тот же, язык тот же, платформа та же... а пишут по-разному.
    Другой редактор (профессия)?

    Цитата Сообщение от Raydac Посмотреть сообщение
    считай что у тебя таблица в базе данных с именем "мама" и в ней два столбца первый кто и второй кого
    Да, только у этой таблицы нет наименования колонок и всё это надо держать в голове. Я что-то не увидел, а в Прологе комментарии допускаются? В общем, судить о простоте довольно специализированного языка спустя 40 лет и когда знаком с современными ЯП довольно сложно. Возможно, в 70-х для определённых задач в сравнении с Fortran-77 он был пределом простоты..
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32

    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    1,131
    Спасибо Благодарностей отдано 
    55
    Спасибо Благодарностей получено 
    257
    Поблагодарили
    195 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, только у этой таблицы нет наименования колонок и всё это надо держать в голове.
    наименований нет, вместо этого используется порядок и вместо sqlовского select * from мама в прологе получается мама(X,Y)
    комментарии в стандартном прологе обычно начинаются с % и до конца строки
    программирование в прологе в целом строится на паттерн матчинге, том который сейчас в современные языки входит все больше и больше и считается крутатой, в той же scala к примеру

  4. #33

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,504
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Raydac Посмотреть сообщение
    который сейчас в современные языки
    Цитата Сообщение от Raydac Посмотреть сообщение
    считается крутатой
    И который мы (я не про конкретно про паттерн матчинг, а в принципе), не знаю о его крутате использовали в тыща-девятьсот-лохматом-году. Как например - событийное и клиент-серверное программирование в (примерно) 1985 году в игре (многотерминальная) Змейка. Помню, визг при игре в неё стоял почище, чем при сетевой игре в Doom в (примерно) 1995

  5. #34

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я пока вот что не понял в Прологе: как он отличает значение от переменной?
    В том же англо-русском словаре есть такие слова как A и I. Если я задам вопрос ? RUSENG(Я,I) какой ответ получится - I=I или TRUE? То есть буква I будет воспринята как переменная, для которой надо найти значение, или как значение, которое связано с "Я"?
    Пока что мне попадались примеры типа ? RUSENG(Я,A) и они выдавали ответ A=I, что логично. Но ведь я заранее не знаю какое там значение, и выбранное мной имя переменной может совпасть со значением. Тогда ответ получится не string, а boolean. Возможно, "I=I" автоматически преобразуется в "TRUE", но на фига мне TRUE, если я хочу получить текстовое значение для дальнейшего использования?
    Последний раз редактировалось Manwe; 27.05.2019 в 10:52.
    manwe.pdp-11.ru

  6. #35

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    как он отличает значение от переменной?
    Где-то написано, что в нём нет переменных.
    Цитата Сообщение от Manwe Посмотреть сообщение
    ? RUSENG(Я,I)
    А эту "I" можно потом использовать в выражениях именно как переменную или это просто "болванка" для получения ответа?
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  7. #36

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Где-то написано, что в нём нет переменных.
    А эту "I" можно потом использовать в выражениях именно как переменную или это просто "болванка" для получения ответа?
    Болванка для получения ответа. Или, точнее, локальная переменная. Согласно документации, в Прологе переменные действуют только внутри одной строки.
    Но ответ всё равно же куда-то выдаётся, наверное его можно использовать? Что-то такое было написано, что не всегда возможно составить запрос одной строкой.

    - - - Добавлено - - -

    А, вот пишут «вопрос не должен содержать новых атомов и переменных». Но опять же, если при задании правила я использовал переменную I, то как Пролог определит что я имел в виду в вопросе: переменную I или её значение, равное I?
    manwe.pdp-11.ru

  8. #37

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Или вот ещё пример. У нас есть англо-русский словарь (описан выше в документации). Я хочу ввести новое правило: как определить, что слова - синонимы. Во всех примерах используют переменные a, b, c или x, y, z, но я хочу использовать I, J, K - вроде как не запрещено. Тогда получается:
    Код:
    СИНОНИМ(I,J)<-RUSENG(I,K),RUSENG(J,K);
    СИНОНИМ(I,J)<-RUSENG(K,I),RUSENG(K,J);
    То есть два слова - синонимы, если для них находятся одинаковые переводы на английский (первое правило) или одинаковые переводы на русский (второе правило). Правда, здесь не учитывается что слов вообще может не быть в словаре (но это пока и не важно).
    Теперь я хочу написать вопрос. Он не должен содержать новых переменных. Хорошо, использую переменную I. Пишу:
    Код:
    ? СИНОНИМ(I,Я)
    И не понимаю, что должен выдать Пролог - все синонимы слова "Я" (me, I, myself, ego) или значение "ИСТИНА" (в том смысле, что да, "I" и "Я" - синонимы).
    manwe.pdp-11.ru

  9. #38

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    И не понимаю, что должен выдать Пролог
    Зависит от того, что он считает переменной. Судя по документации, можно предположить, что переменными он считает только латинские буквы от A до Z, то есть однобуквенные слова на латинице. Тогда кроме I = Я должны выдаться другие русские слова, которые переводятся на английский как me, myself, ego (если они есть в списке фактов).

    Вообще, насколько я помню, в большинстве реализаций, переменные - это любые слова, начинающиеся с заглавной латинской буквы. Чтобы такое слово не считалось переменной, его нужно писать в кавычках.

  10. #39

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Вообще, насколько я помню, в большинстве реализаций, переменные - это любые слова, начинающиеся с заглавной латинской буквы. Чтобы такое слово не считалось переменной, его нужно писать в кавычках.
    Примеры из Wikipedia заключают английские слова в кавычки. В документации к Пролог-Д для БК-0010 об этом пока ни слова.
    Кстати, обнаружил арифметическую ошибку в статье 1990-го года. Неправильный результат работы программы у них там. Я даже проверил, набив эту программу... Ну ничего, исправляю по ходу дела. Выложу документацию уже без ошибок.
    А вообще, судя по всему, придётся свою документацию написать - сжатую и понятную.
    manwe.pdp-11.ru

  11. #40

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    И не понимаю, что должен выдать Пролог
    А есть онлайн машины с Пролог близкие к этому или классическому? Я попробовал пару сайтов, но они вообще синтаксин подобный этому или с Вики не понимают. Посмотрел их примеры, там вообще всё не так :-/
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

Страница 4 из 8 ПерваяПервая 12345678 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. ПРОЛОГ для БК?
    от tnt23 в разделе БК-0010/0011
    Ответов: 32
    Последнее: 27.09.2018, 20:50
  2. Листинг ПЗУ БК0010
    от Jarik65535 в разделе БК-0010/0011
    Ответов: 1
    Последнее: 12.07.2017, 09:42
  3. Ответов: 0
    Последнее: 29.05.2015, 00:40
  4. Создание кросскомпилятора языка Оберон для Z80
    от Oleg N. Cher в разделе Программирование
    Ответов: 35
    Последнее: 27.03.2012, 14:36

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •