В блоге The Lowest Level PL автор разбирает одну на первый взгляд «детскую» задачу о раскладке цветных кубиков, но превращает её в тест на то, какой язык программирования ближе к «низкоуровневому». Идея проста: иногда именно через практические задачи лучше всего понять философию языка. Есть девять позиций в ряд. Нужно разместить: Условие: одинаковые кубики не должны стоять рядом. Математически, через принцип включения–исключения, ответ известен: 3660 допустимых размещений. Но автор решил проверить — как с этой задачей справятся разные языки: Lean, Haskell и Rust. Задача прекрасно решается через комбинаторику: Но математика здесь — лишь референс. Интереснее посмотреть на программные реализации. Lean
📐 Формально-верифицируемая математика. Код в Lean очень декларативный, структура близка к теоремам: чёткие определения типов, функций и условий. Это «язык доказательств», где решение выглядит скорее как описание правил игры, чем как «алгоритм». Haskell
🎻 Классический функционал. Рекурсивны