Salut à tous.
Voici une version en Clojure. Rien de remarquable, juste qu'on affiche le tempo tous les 6 battements.
Il n'y a pas la prise en charge d'arguments ou d'internationalisation.
(ns taptempo.core
(:import jline.console.ConsoleReader)
(:gen-class))
(defn now []
(System/currentTimeMillis))
(defn read-char []
(-> (ConsoleReader.) (.readCharacter) char))
(defn calc-tempo [start end taps]
(* (/ taps (- end start)) 1000 60))
(defn print-tempo [tempo]
(println (format "Tempo: %.2f bpm" (float tempo))))
(defn -main [& args]
(println "Appuyer sur la touche entrée en cadence (q pour quitter).")
(loop [start (now), count 0]
(when-not (= (read-char) \q)
(if (= count 6)
(do
(-> (calc-tempo start (now) count)
print-tempo)
(recur (now) 0))
(recur start (inc count))))))
Ils sont fun tous ces journaux !
# Compact
Posté par mzf (site web personnel) . Évalué à 2.
Mis à part la parenthésite aigüe héritée de Lisp, cette version est vraiment compacte ! Merci :-)
[^] # Re: Compact
Posté par hocwp (site web personnel) . Évalué à 3.
Merci à toi pour l'idée d'origine et aux auteurs pour les autres langages.
C'est vraiment fun de comparer les langages avec chacun sa culture !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.