Size: a a a

2020 November 08

AV

Alexander Vershilov in Haskell
Ой Слушай их больше
источник

AV

Alexander Vershilov in Haskell
Ладно, не буду публично писать, что я думаю о том, какой будет реальный прогресс с hf. Дело то всяко полезное, пусть делают, может что и выйдет
источник

KV

Kirill Valyavin in Haskell
Alexander Vershilov
В общем технический директор, который понимает язык и готов принять ответственность
CTO же если технический
источник

A

Andrey in Haskell
Kirill Valyavin
CTO же если технический
+
а CEO - исполнительный
источник

AV

Alexander Vershilov in Haskell
Kirill Valyavin
CTO же если технический
И тут спасибо
источник

KA

Kazhygeldi Alymov in Haskell
Доброго времени суток, уважаемые!
источник

KA

Kazhygeldi Alymov in Haskell
Можете ли вы помочь решить одну задачу?
источник

KA

Kazhygeldi Alymov in Haskell
Вариант 2. Экспертная система.
Создайте простую экспертную систему, которая классифицирует что-либо в зависимости от ответов пользователя на вопросы. Примерами подобных систем могут быть программа поиска причин неисправности или классификации объектов по категориям.
Данная экспертная система будет определять животное из трех возможных: муравей, зебра и золотая рыбка. Система будет использовать таблицу, содержащую вопросы и действия, которые необходимо предпринять при ответах да и нет. Пример: Это живет в воде? Если да, то золотая рыбка. Если нет, то это черное? Если да, то муравей, если нет, то зебра.
Такая таблица может быть представлена типом data Table = Decision String | Question String Table Table, где Decision d означает выдать решение d, а Question q y n означает задать вопрос q, и следовать инструкциям в таблице y или n в зависимости от ответа.
Определите функцию decide :: Table -> IO (), которая следуя инструкциям из таблицы, задает пользователю вопросы и в зависимости от его ответа задает дальнейшие вопросы или выводит результат.
Для создания таблицы нам необходимы вопросы о каждом из животных и ответы на них. Их можно представить в виде списка, где каждое решение связано с вопросом и соответствующим ему ответом. Например:
facts :: Facts
facts =
 [("Это муравей",
    [("Это меньше карандаша", True),
     ("Это черное", True),
     ("Это живет в воде", False)]),
  ("Это зебра",
    [("Это меньше карандаша", False),
     ("Это живет в воде", False),
     ("Это полосатое", True),
     ("Это черное", False)]),
  ("Это золотая рыбка",
    [("Это меньше карандаша", True),
     ("Это полосатое", True),
     ("Это черное", False),
     ("Это живет в воде", True)])]
Определите функцию restrict :: String -> Bool -> Facts -> Facts, которая по вопросу, ответу и списку возможных фактов возвращает список тех фактов, которые данный ответ НЕ исключает. Заметьте, что некоторые факты могут не относиться к вопросу, поэтому они не исключаются любым ответом. Примеры:
restrict "Это полосатое" False facts ==
 [("Это муравей",
    [("Это меньше карандаша", True),
     ("Это черное", True),
     ("Это живет в воде", False)])]

restrict "Это черное" True facts ==
 [("Это муравей",
    [("Это меньше карандаша", True),
     ("Это живет в воде", False)])]
Определите функцию table :: Facts -> Table, которая строит таблицу решений по набору фактов. Необходимо обеспечить получение решения за минимальное количество вопросов. В примере для идентификации животного требуется максимум 2 вопроса, хотя по каждому животному известно три или четыре факта. Хорошей стратегией для этого является задание вопроса, который при любом ответе минимизирует количество возможных решений. В данном случае первый вопрос «Это живет в воде» гарантирует, что независимо от ответа остается максимум две возможности. Напротив, вопрос «Это полосатое» при ответе да не исключает ни одного животного (муравьи не полосатые, но этого факта в базе нет).
Напишите программу, реализующую данную функциональность. Предусмотрите возможность загрузки фактов из текстовых файлов.
источник

MK

Maxim Koltsov in Haskell
Это домашнее задание?
источник

KA

Kazhygeldi Alymov in Haskell
Заранее спасибо за ваше внимание! Жду положительного ответа
источник

MK

Maxim Koltsov in Haskell
Здесь не решают чужие домашки, только отвечают на конкретные вопросы и советуют в какую сторону двигаться
источник

KA

Kazhygeldi Alymov in Haskell
Maxim Koltsov
Это домашнее задание?
Да
источник

MK

Maxim Koltsov in Haskell
А ещё с большой вероятностью в этом чате есть люди знакомые с вашим преподавателем
источник

AT

Alexander T in Haskell
Kazhygeldi Alymov
Заранее спасибо за ваше внимание! Жду положительного ответа
“Можете ли вы помочь решить одну задачу?”
ответ положительный. можем.
источник

KA

Kazhygeldi Alymov in Haskell
Благодарю!
источник

AV

Alexander Vershilov in Haskell
Чатик преподавателей ещё не завели, кстати?
источник

AV

Alexander Vershilov in Haskell
Хотя задачи в таком стиле, где прям все что нужно сделать в условии написано ещё не было
источник

AV

Alexander Vershilov in Haskell
Ладно, почти все шаги
источник

JS

Jerzy Syrowiecki in Haskell
Alexander Vershilov
Чатик преподавателей ещё не завели, кстати?
есть чатик преподавателей CS, там активность довольно низкая, так что можно там обсуждать такие вещи
источник

JS

Jerzy Syrowiecki in Haskell
ссылку давать не буду, чтобы не было случайных посетителей, а кому надо, сам угадает, имя тривиальное
источник