   (reduce-indexed (fn [acc idx itm]
                     (println (str "acc: " acc " idx: " idx " itm: " itm))
                     (assoc acc itm (conj (get acc itm #{}) idx))) {} values)
-
-
-
-  )
+)

      (find-out children)
      (map #(get subject-names %) (:alternatives chosen-subtree)))))


;; (find-out (solve-tree subject-matrix))

(defn -main
  [& args]
  (println "Here is a solve tree for subject matrix:")


(defn ask-question [answers]
  (let [feature (first (first answers))]
    (println "What is the value of feature:" feature "?")
    (let [indexed-answers (print-answers answers)]
      (println "0. Nothing of the kind" )
      (print "Answer (number of the option):")
      (flush)
      (let [cr (ConsoleReader.)
            user-choise (.readLine cr)]
        (try
          (let [answer-number (Integer/parseInt user-choise)]
            (if (= 0 answer-number)
              (throw (IllegalStateException. (str "subject don't corresponds any of options for feature: " feature))))
            (if-let [answer (indexed-answers answer-number)]
              answer
              (repeat-question answers)))
          (catch NumberFormatException e (repeat-question answers)))))))

(defn answers [tree]
  (into #{}
