Skip to content

Instantly share code, notes, and snippets.

@pbalduino
Last active December 25, 2015 12:59
Show Gist options
  • Save pbalduino/6980752 to your computer and use it in GitHub Desktop.
Save pbalduino/6980752 to your computer and use it in GitHub Desktop.
(ns logic.core
(use [clojure.math.combinatorics]))
(defn solve-logic-puzzle-1 []
"http://rachacuca.com.br/logica/problemas/1/"
(let [people [:espanhol :alemao :italiano]]
(first
(for [[casa1 casa2 casa3] (permutations people) ; casas
[azul vermelha preta] (permutations people) ; cores
; O Espanhol mora diretamente à direita do homem que mora na casa vermelha.
:when (not= :espanhol vermelha)
:when (not= :espanhol casa1)
:when (not= :vermelha casa3)
; O Alemão mora na casa azul.
:when (= :alemao azul)
; O Italiano mora na segunda casa.
:when (= :italiano casa2)]
(array-map
:azul azul :vermelha vermelha :preta preta
:casa1 casa1 :casa2 casa2 :casa3 casa3)))))
(defn -main[]
(println (solve-logic-puzzle-1)))
; Saída
; {:azul :alemao,
; :vermelha :italiano,
; :preta :espanhol,
; :casa1 :alemao,
; :casa2 :italiano,
; :casa3 :espanhol}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment