This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-01-29
Channels
- # announcements (17)
- # aws (12)
- # babashka (27)
- # beginners (85)
- # bristol-clojurians (1)
- # calva (16)
- # cider (3)
- # clara (7)
- # clojure (80)
- # clojure-europe (13)
- # clojure-italy (19)
- # clojure-nl (2)
- # clojure-norway (6)
- # clojure-poland (1)
- # clojure-spec (31)
- # clojure-uk (61)
- # clojurescript (29)
- # core-async (10)
- # cursive (7)
- # data-science (1)
- # datomic (29)
- # docker (3)
- # fulcro (120)
- # graphql (16)
- # hugsql (2)
- # leiningen (17)
- # luminus (2)
- # off-topic (36)
- # other-languages (3)
- # pathom (13)
- # re-frame (12)
- # ring (2)
- # rum (1)
- # shadow-cljs (126)
- # tools-deps (56)
- # vscode (5)
appena ordinato un raspberry pi 4 con l’idea di giocarci a minecraft attraverso pythonAPI (https://projects.raspberrypi.org/en/projects/getting-started-with-minecraft-pi/5) ma ovviamente la domanda sorge spontanea…. clojureAPI? 😬
lei ci sta lavorando parecchio https://twitter.com/gigasquid?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor
Yay or nay?
(defn cartesian-prod [colls]
(let [vars (vec (take (count colls) (repeatedly gensym)))
binds (vec (interleave vars colls))]
(eval `(for ~binds ~vars))))
(let [all [[1 2] [3 4]]] (cartesian-prod all))
;; ([1 3] [1 4] [2 3] [2 4])
Motivo: non si sa quante coll ci sono in colls. for
funziona molto bene se si sa quante colls ci sono. Quindi sto cercando un modo di generare un for
attraverso qualche macro expansion. I miei tentativi di usare defmacro
non hanno funzionato fin’ora. Mi piacerebbe capire dove sbaglio.
(defn cartesian-prod [colls]
(if-let [[coll & colls] (seq colls)]
(for [x coll
xs (cartesian-prod colls)]
(cons x xs))
[[]]))
Se hai un minuto (e voglia) puoi postare una defmacro
che genera un for
con bindings variabili? Ho provato varie combinazioni di sintax-quote, gensym e famiglia ma mi blocco sempre. Ho la sensazione che dovrebbe essere relativemente semplice… oppure c’e’ qualcosa che non capisco
(let [all [[1 2] [3 4]]] (cartesian-prod all))
con cartesian-prod
una defmacro
non e` fattibile