Clojurians
#clojure-italy
<
2018-12-01
>

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

reborg08:12:38

Ok, ho guardato Rich. Talk interessante, non mi ha dato l’impressione di un rant static Vs dynamic. Mi sembra che effettivamente stia rivalutando s/nilable in Clojure e guardando agli altri linguaggi per ispirazione/critica. Mi piace l’idea di distinguere tra attributes <- schemas <- selections (penulitma slide) e rivedere tipi come tree di cui “dichiaro” cosa mi interessa (zippers-selectors? mmh).

reborg08:12:42

Mi chiedo anche: a questo punto ci potranno essere common/ontologies (tipo ::people ::automotive etc.) che qualcuno mantiene e contegono tutto riguardo ad un grupppo di taxonomies? Tanto poi io piglio quello che mi serve.

helios08:12:43

buongiorno :slightly_smiling_face:

helios08:12:07

@reborg mmm interessante. Oggi me lo guardo anche io

andrea.crotti10:12:57

qualcuno ha suggerimenti su come scrivere un algoritmo tipo questo?

(defn longest-subseq-rec
  [s]
  (loop [subseq s
         curr 0
         tot 0]

    (let [curr-max (max curr tot)]
      (if (empty? subseq)
        curr-max
        (if (= :w (first subseq))
          (recur (rest subseq) (inc curr) curr-max)
          (recur (rest subseq) 0 curr-max))))))

(longest-subseq-rec [:w :w :l :w :w :w])
;; => 3

(longest-subseq-rec [:w :w :w :w :l :w :w :w])
;; => 4

andrea.crotti10:12:13

che funziona gia' cosi ricorsivamente, ma mi domandavo se non c'e' un modo di farlo con reduce & compagni

andrea.crotti10:12:57

ah ho trovato un modo :smile: (apply max (map count (filter #(= #{:w} (set %)) (partition-by identity [:w :w :l :l :w :w :w]))))

andrea.crotti10:12:33

che scritto cosi e' piu' umano

(->> [:w :w :l :l :w :w :w]
              (partition-by identity)
              (filter #(= #{:w} (set %)))
              (map count)
              (apply max))

andrea.crotti13:12:16

Un altra cosa simile però adesso, data una sequenza tipo [1 2 10 4 7 30] vorrei trovare il massimo incremento consecutivo

andrea.crotti13:12:40

Che in quel caso sarebbe 26 per esempio

andrea.crotti13:12:08

Qui mi sa devo andare di ricorsione

bronsa13:12:15

definisci "massimo incremento consecutivo"?

bronsa13:12:50

non riesco a capire 26 da dove esce

reborg13:12:05

30 - 7 = 26? :grin:

andrea.crotti13:12:44

Data una sequenza crescente la differenza tra il primo e l'ultimo

andrea.crotti13:12:52

Prendendo la differenza più grande

reborg13:12:04

Ti stiamo facendo i compiti o l’interview?

andrea.crotti13:12:24

Nessuno dei due :smile:

andrea.crotti13:12:45

Fa parte del progetto elo di cui parlavo l'altra sera

andrea.crotti13:12:25

Il primo era per calcolare il longest streak di vittorie

andrea.crotti13:12:56

Questo per l'incremento più alto

andrea.crotti14:12:01

Vabbeh in qualche modo ce la faccio usando la ricorsione, mi da che il caso degli incrementi non posso fare magie con partition map e compagnia

andrea.crotti14:12:59

Alla fine di quel file

reborg14:12:02

comunque, forse puoi far qualcosa con reductions, vedi (reductions (fn [[max prev succ] itm] [max succ itm]) [0 0 0] [1 2 10 4 7 30] )

andrea.crotti15:12:37

Ah magico direi

andrea.crotti15:12:51

Ok grazie ci provo

reborg15:12:33

non sono sicuro al 100% ma mi sembra che concettualmente si possa fare portandoti dietro il current max, l’elemento precedente ed il successivo.