Pra*_*nav 6 input clojure data-structures
我在Clojure中编写了一个算法,它采用了一组代表多边形的点.另一个输入是一个点,输出需要是该点是否位于多边形内部.
我的问题是如何输入函数的点集?clojure中哪种数据结构最合适 - 集合,向量,列表等?
推测点的顺序很重要,因此ABCD的形状与ABDC的形状不一样?
在这种情况下,您需要某种保留顺序的数据结构.这意味着列表或向量是可接受的,但不是.
但是你也可以编写你的函数来获取任何可选的东西 - 这样如果你以后想要从vector更改为list,反之亦然,那么你就不必改变你的函数了.编程到接口,而不是实现.
通常您应该从最简单的解决方案开始,因此在这种情况下,我可能会使用点列表来完成,每个点表示为二维向量,例如
(def my-polygon (list [0 0] [1 0] [1 1] [0 1]))
Run Code Online (Sandbox Code Playgroud)
这应该适合您的应用程序。
然而,根据您将来最终想要如何使用/操作这些多边形,可以考虑一些替代方案: