 (defn iToC
   "11th parameter"
   [sentence currentGrammar]
-  (def g0 (get @currentGrammar 0))
-  (def g1 (get @currentGrammar 1))
-  (def g2 (get @currentGrammar 2))
-
-  (reset! currentGrammar (iToC_aux1 g0 g1 g2 sentence @currentGrammar))
-  (reset! currentGrammar (iToC_aux2 g0 g1 g2 sentence @currentGrammar))
-  (reset! currentGrammar (iToC_aux3 g0 g1 g2 sentence @currentGrammar))
-  (reset! currentGrammar (iToC_aux4 g0 g1 g2 sentence @currentGrammar))
-  (reset! currentGrammar (iToC_aux5 g0 g1 g2 sentence @currentGrammar)) 
-  (reset! currentGrammar (iToC_aux6 g0 g1 g2 sentence @currentGrammar))
-  (reset! currentGrammar (iToC_aux7 g0 g1 g2 sentence @currentGrammar))
-  (reset! currentGrammar (iToC_aux8 g0 g1 g2 sentence @currentGrammar)))
+  
+  (let [[g0 g1 g2] (take 3 currentGrammar)]
+
+    (->> currentGrammar
+        (iToC_aux1 g0 g1 g2 sentence ,,,)
+        (iToC_aux2 g0 g1 g2 sentence ,,,)
+        (iToC_aux3 g0 g1 g2 sentence ,,,)
+        (iToC_aux4 g0 g1 g2 sentence ,,,)
+        (iToC_aux5 g0 g1 g2 sentence ,,,)
+        (iToC_aux6 g0 g1 g2 sentence ,,,)
+        (iToC_aux7 g0 g1 g2 sentence ,,,)
+        (iToC_aux8 g0 g1 g2 sentence ,,,))))
 
 
 (defn checkForNV01or01VN


(defn containsTopicalizable
  [sentence]
  (def i (.indexOf sentence "S"))
  (def j (.indexOf sentence "01"))
  (def k (.indexOf sentence "02"))
  (def l (.indexOf sentence "03"))
  (def m (.indexOf sentence "Adv"))
  
  (or (= i 0) (= j 0) (= k 0) (= l 0) (= m 0)))


(defn outOblique

    (do (let [sentence (get infoList 2)]
          (if (and (inSentence? sentence "02") (not (inSentence? sentence "01")))
            (do (let [tempGrammar (assoc grammar 5 1)]
                 (if (= (get tempGrammar 3) 1)
                   (assoc tempGrammar 3 0)
                   tempGrammar)))
            (if (containsTopicalizable sentence)
              (assoc grammar 3 1)
              grammar))))
