Как решить задачу о быках, коровах и телятах на Haskell?
Бык стоит 10 рублей, корова - 5 рублей, телёнок - 0.5 рублей. Необходимо на 100 рублей купить 100 голов скота. Мне стало интересно, как такую задачу решить в Haskell? В императивных языках задача решается через вложенные циклы, но в Haskell их нет. Сколько ни пытался, решить задачу не смог.
Ответы (1 шт):
Автор решения: isnullxbh
→ Ссылка
Код:
main :: IO ()
main = do
print [(b, k, c) |
b <- [1..10],
k <- [1..20],
c <- [1..200],
(\x y z ->
10 * x + 5 * y + 0.5 * z == 100 && x + y + z == 100)
b k c]
Пояснения:
10 * x + 5 * y + 0.5 * z == 100- предикат для проверки общей стоимости скотаx + y + z == 100- предикат для проверки общей численности скота
P.S. В Haskell новичек, прошу за код сильно не ругать.