Clojure Don';我不知道如何创建ISeq

Clojure Don';我不知道如何创建ISeq,clojure,Clojure,我解析obj文件并尝试替换f中的顶点,而不是序号 例f: [[{:v 1 :vt 1 :vn 1} {:v 2 :vt 2 :vn 2} {:v 3 :vt 3 :vn 3}] ...] 但我有错误 java.lang.IllegalArgumentException:不知道如何从以下位置创建ISeq:clojure.core$map$fn_uu5583 一致 {:v(第n个v-list(dec v)):vt(get vt list(dec vt)):vn(第n个vn list(dec vn

我解析obj文件并尝试替换f中的顶点,而不是序号

例f:

[[{:v 1 :vt 1 :vn 1} {:v 2 :vt 2 :vn 2} {:v 3 :vt 3 :vn 3}]
 ...]
但我有错误

java.lang.IllegalArgumentException:不知道如何从以下位置创建ISeq:clojure.core$map$fn_uu5583

一致

{:v(第n个v-list(dec v)):vt(get vt list(dec vt)):vn(第n个vn list(dec vn))}

我怎么能修好它?谢谢

我的代码:

(defn fill-vertex [{:keys [v vt vn]} v-list vt-list vn-list]
  {:v (nth v-list (dec v)) :vt (get vt-list (dec vt)) :vn (nth vn-list (dec vn))})

(defn fill-triangle [triangle v vt vn]
  (map #(fill-vertex % v vt vn) triangle))

(defn to-f-list [{:keys [f v vt vn matrix]}]
  (let [v-u (->> v (map #(add-perspective % matrix) (map #(viewport %))))
        vn-u (map #(add-perspective % matrix) vn)]
    (map #(fill-triangle % v-u vt vn-u) f)))

(map #(add-perspective % matrix) (map #(viewport %)) v)
但是

不是序列,而是传感器功能

你的意思可能是:

(->> v (map #(add-perspective % matrix)) (map #(viewport %)))
当您在一行上放置多个操作时,很难发现这种错误,因此我建议您使用换行

(->> v
     (map #(add-perspective % matrix))
     (map #(viewport %)))
这样可以更容易地遵循这些步骤,从而进行分组

(map #(add-perspective % matrix) (map #(viewport %)) v)
但是

不是序列,而是传感器功能

你的意思可能是:

(->> v (map #(add-perspective % matrix)) (map #(viewport %)))
当您在一行上放置多个操作时,很难发现这种错误,因此我建议您使用换行

(->> v
     (map #(add-perspective % matrix))
     (map #(viewport %)))

这样可以更容易地遵循这些步骤,从而进行分组。

您能提供一个最小的、完整的工作示例吗?(即,请包括
add perspective
的定义和触发错误的顶级函数调用。)这将有助于人们帮助您。您是否可以包括一个最小的、完整的工作示例?(即,请包括
add perspective
的定义和触发错误的顶级函数调用。)这将帮助人们帮助您。