相关疑难解决方法(0)

咒语中的笛卡尔积

我正在尝试实现一个方法,该方法将获取列表列表并返回这些列表的笛卡尔积.

这是我到目前为止所拥有的:

(defn cart


([] '())
 ([l1] (map list l1))
 ([l1 l2] 
  (map 
    (fn f[x] (map
    (fn g [y] (list x y))
    l2))
      l1)
      )

)

(defn cartesian-product [& lists] 
      (reduce cart lists)

 )





;test cases 
(println (cartesian-product '(a b) '(c d))) ; ((a c) (a d) (b c) (b d))
(println (cartesian-product ())) ;()
(println (cartesian-product '(0 1)))    ; ((0) (1))
(println (cartesian-product '(0 1) '(0 1))) ; ((0 0) (0 1) (1 0) (1 1))
(println (apply cartesian-product …
Run Code Online (Sandbox Code Playgroud)

functional-programming clojure cartesian-product

12
推荐指数
5
解决办法
6608
查看次数

Clojure:我如何获得'坐标'组合的列表?

假设我有一个带坐标,x和y的函数.

对于x,我有一系列值表示[1 2 3],对于y我有另一个值序列说[4 5 6].

我如何获得包含这些组合的列表?

所以期望的结果将是这样的:

(myfn [1 2 3] [4 5 6]) => [[1 4] [1 5] [1 6] [2 4] [2 5] [2 6] [3 4] [3 5] [3 6]]
Run Code Online (Sandbox Code Playgroud)

这样的东西有现成的功能吗?

clojure

10
推荐指数
1
解决办法
3714
查看次数

将列表项分发给clojure中的变量

当我通过这个功能

(into [] 
      (map #(+ %1 %2)
           [1 2]
           [5 6]))
Run Code Online (Sandbox Code Playgroud)

我得到这个结果: [6 8]

我该怎么做才能得到这个:[6 7 7 8]保持这个#(+ %1 %2)

map在这种情况下似乎不是正确的功能.

clojure

1
推荐指数
1
解决办法
57
查看次数