Clojurians
#clojure-italy
<
2018-09-10
>

This page is not created by, affiliated with, or supported by Slack Technologies, Inc.

bronsa08:09:21

cljs.analyzer

helios08:09:12

buongiornissimo!

justalanm10:09:17

Ma se volessi rendere disponibile una funzione in un ns definita in un altro ns? Cioé l'utente facendo require di un ns si ritrova importate anche delle funzioni da un altro ns

bronsa10:09:48

di cui non sono per niente un fan

bronsa10:09:57

ma fa quel che stai chiedendo

mdallastella10:09:31

@justalanm cioè, un import implicito? Quindi se importo foo mi becco anche le funzioni di bar?

justalanm11:09:46

@mdallastella yes, se importo lib.core mi importo anche le funzioni di lib.utils, un po' à la Python (capisco che non sia bellissimo, ma d'altro canto il contrario mi spingerebbe a creare ns kilometrici)

justalanm11:09:54

@bronsa thx ci do un occhio!

reborg11:09:59

@justalanm lib.core and lib.utils sono sotto il tuo controllo? Cioe’ le hai scritte tu?

justalanm11:09:27

@reborg sì esatto

reborg11:09:15

c’e’ anche l’opzione di usare (in-ns lib.core) da dentro lib.utils (il file), un po’ come fa pprint (vedi https://github.com/clojure/clojure/blob/master/src/clj/clojure/core_print.clj#L9)

mdallastella12:09:45

@justalanm in ottica di refactoring futuro non la vedo una grande scelta, ma è solo una mia opinione

mdallastella12:09:21

(ho programmato anch'io in Python ed ho sempre trovato che "esplicito è meglio che implicito" sia cosa buona e giusta)

andrea.imparato12:09:18

una delle mie solite domande niubbe... Come si fa su emacs a pulire il buffer del repl?

bronsa12:09:42

M-x comint-clear-buffer

justalanm12:09:28

@mdallastella da un lato, dall'altro molti pacchetti hanno in __init__.py: from lib1 import *, from lib2 import *. Se così non fosse ci sarebbero import del tipo pacchetto.modulo.sottomodulo.classe, comunque alla fine la soluzione migliore è quello di fare una cosa più flat possibile e mettere tutto in core.clj, alla fine 300 righe comprese doctsring non è nemmeno così male

bronsa12:09:31

@justalanm fino a ~1000 righe e` piu` che idiomatico in clojure

bronsa14:09:33

riguardo al tweet di rich: sembra sia un foreshadowing di cambiamenti a s/keys

bronsa14:09:18

non so altro pero` :)