Про акинатор не скажу, но мои старые лабы по лиспу напоминают мне, что он как-раз создан под эти цели. Вся концепция работы акинатора, очень похожа на лисп приложение
Не хочу никого расстраивать, но крайне маловероятно, что Акинатор написан на прологе. Его просто нет смысла писать на нем, и я поясню почему.
Пролог - язык логического программирования, основная его "фишка" в неявно производимом логическом выводе.
В основе же Акинатора, скорее всего, лежит вероятностная модель (насколько я знаю, достоверных данных о том, как он работает нет) и наблюдаемые закономерности подтверждают эту гипотезу.
Если кратко, то для определения условной вероятности выбора того или иного персонажа предсказуемо применяется теорема Байеса, а для выбора следующего ответа, выбирается тот, ответ на который максимально уменьшит энтропию (неопределенность).
Никакого логического вывода здесь нет, задача наиболее эффективно решается языками программирования общего назначения и я знаю о чем говорю, ибо писал аналог.
Лучшее описание, которое я встречал и которое, скорее всего, дает ответ на вопрос о том, что там под капотом:
http://www.machinelearning.ru/wiki/images/7/78/BayesML-2010-...
Была уже глубокая ночь, так что извиняюсь за ошибку. Хотя сказанное отчасти справедливо и по отношению к Lisp. Использовать его тут, опять же, не было никого смысла; фичи функционального программирования здесь совсем не нужны.
фичи функционального программирования здесь совсем не нужны.Современные лиспы - языки мультипарадигменные.
Грусть, когда мы проходим сейчас пролог (2 курс), а ещё на 4 будет лисп. Я и так догадывалась, что пролог донышко, но теперь это вообще никакого смысла не имеет.
Как говорил мой препод по прологу:"Я не люблю пролог. Все, что может пролог, намного удобнее написать на других языках. Но он есть у вас в программе, поэтому я преподам, а вы выучите."
На деле он вроде языка-инструкции для разработок ИИ по "научному" методу. Наверное, где-то в НИИ до сих пор используют.
Каких вероятностных связей? О чем вы? В его основе нет никакой вероятности, он основан основанные на языке предикатов, там нет места вероятностям.
У вас Пролог. Вы ставите цель — Принцесса(Спасена). и наблюдаете, как компилятор пытается её выполнить.
На прологе: Вы пишите гигантский том под названием "100500 способы выбраться из замка" и шлете принцессе.
Да, пожалуй точнее: Присылаешь ей план замка, учебник по физике, анатомию драконов в трех томах и записочку, что ты бы хотел ее увидеть.)
суть в том что там юзают много скобочек, логично же)(((())))))))((((((((((((((((()))))))))))))(((((((())))))))))
Это я так выше пошутить пытался, не бейте
Вот такой код там не редкость (вырезка из реального кода):
(not (null (find request-file files :test #'equal))))))
И, нет, в отличии от предков братьев Бури он нам не улыбается.
Впрочем, вы могли найти материал, откуда код взят и убедится в том, что это реальный код (пример сайта на Common LISP):
https://special.habrahabr.ru/kyocera/p/112051/
Конкретно данный кусок (9-я строка):
Так что в реальности скобок еще больше :)
Вот аналогичный вашему пример скобочек в javascript:
if (err) console.log('Error writing file: ' + err)
})
}.bind(this))
}
})
})
}
})
тоже реальный пример отсюда: http://callbackhell.com/
Посмотрите код LISP целиком: количество повторяющихся друг за другом скобок в коде, написанном на нем, всегда значительно больше, чем в среднем для остальных языков; поэтому неудивительно возникновение такого юмористического взгляда на него.
Так что мой пример просто показателен, но ни в коем случае не некорректен.
И, да, тот код, на который ссылаюсь я - это учебный и в определенном смысле образцовый код, а тот код, на который ссылаетесь вы, наоборот критикуется автором, и в статье предлагаются подходы для его корректировки.
Вот хороший пример когда сравнивается количество разделителей для функции с идентичным кодом на Javascript и на Clojure( лисп-подобный язык):
https://yadi.sk/i/sDluo_LZwdvqv
так что множество одинаковых скобок в лиспе просто бросается в глаза, а в других языках маскируется "разбавлением" разделителей разного типа и вроде не так страшно уже все :-)
Плюс нельзя забывать тот факт, что в LISP повсеместно используется функциональный подход, в результате применения которого некоторые участки кода представляют собой просто последовательность вызовов различных функций и эта особенность поэтому проявляется наиболее ярко.
И кто сказал, что это страшно? Забавно же :)
но говорить что он мёртвЯ говорю
его уже почти не юзают)
Не знаю ни единого человека, кто бы писал на лиспе. Может быть я ослеп и не вижу тонны вакансий по лиспу, дев контор, курсов и семинаров по этому языку?
В общем, учить лисп ради быстрого профита смысла нет. Для расширения кругозора или если душа к этому лежит, то почему бы и нет.
И? Это немного не моя область, но что-то подсказывать, что относительно всего остального erlang и elixir всё равно в меньшинстве.

