Fork me on GitHub
#clojure-france
<
2017-02-09
>
pbaille14:02:39

(= (let [{a :a} nil] a)
   (let [{a :a} {:a nil}] a))

pbaille14:02:02

un peu embetant...

pbaille14:02:36

(let [{a :a} nil] a) ;=> :clojure.core/unbound

pbaille15:02:44

clojure.core/destructure !!! đŸ™‚

val_waeselynck15:02:05

@pbaille j'arrive pas Ă  reproduire

pbaille15:02:57

le :clojure.core/unbound n'existe pas c'est juste une proposition

pbaille15:02:34

c'est juste que je suis dans un cas ou j'ai besoin de differencier entre les 2 cas du premier exemple

pbaille15:02:19

mais en patchant clojure.core/destructure y'a moyen de faire ce que je veux

pbaille15:02:16

(let [{a :a [a b c] :b} {:a 2 :b [1]}] a)
:=> 1

pbaille15:02:33

marrant aussi

pbaille15:02:56

le resultat depend de l'ordre des entrées le la map de destructuration... suspect

val_waeselynck15:02:23

@pbaille tu peux peut-Ăªtre juste faire un truc du genre (get my-map :a ::unbound)

val_waeselynck15:02:49

ou encore (:a my-map ::unbound)

pbaille15:02:52

oui c'est sur

pbaille15:02:03

c'est du code generé j'ai pas la main dessus

pbaille15:02:16

j'ecris une sorte de macro

pbaille15:02:07

ou plutot une expression sur laquelle j'appelle eval plus tard

pbaille15:02:38

le pattern de destructuration est dynamique

val_waeselynck15:02:37

haha toujours un plaisir de travailler au niveau syntaxique

pbaille17:02:49

oui c'est fun, mais parfois ça fait mal au crane un peu

pbaille17:02:33

đŸ™‚