mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
add Clojure and its dialects to /samples
This commit is contained in:
17
samples/Clojure/for.clj
Normal file
17
samples/Clojure/for.clj
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
(defn prime? [n]
|
||||||
|
(not-any? zero? (map #(rem n %) (range 2 n))))
|
||||||
|
|
||||||
|
(range 3 33 2)
|
||||||
|
'(3 5 7 9 11 13 15 17 19 21 23 25 27 29 31)
|
||||||
|
|
||||||
|
;; :when continues through the collection even if some have the
|
||||||
|
;; condition evaluate to false, like filter
|
||||||
|
(for [x (range 3 33 2) :when (prime? x)]
|
||||||
|
x)
|
||||||
|
'(3 5 7 11 13 17 19 23 29 31)
|
||||||
|
|
||||||
|
;; :while stops at the first collection element that evaluates to
|
||||||
|
;; false, like take-while
|
||||||
|
(for [x (range 3 33 2) :while (prime? x)]
|
||||||
|
x)
|
||||||
|
'(3 5 7)
|
||||||
8
samples/Clojure/hiccup.hic
Normal file
8
samples/Clojure/hiccup.hic
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[:html
|
||||||
|
[:head
|
||||||
|
[:meta {:charset "utf-8"}]
|
||||||
|
[:link {:rel "stylesheet" :href "css/bootstrap.min.css"}]
|
||||||
|
[:script {:src "app.js"}]]
|
||||||
|
[:body
|
||||||
|
[:div.nav
|
||||||
|
[:p "Hello world!"]]]]
|
||||||
13
samples/Clojure/into-array.cljc
Normal file
13
samples/Clojure/into-array.cljc
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
(defn into-array
|
||||||
|
([aseq]
|
||||||
|
(into-array nil aseq))
|
||||||
|
([type aseq]
|
||||||
|
(let [n (count aseq)
|
||||||
|
a (make-array n)]
|
||||||
|
(loop [aseq (seq aseq)
|
||||||
|
i 0]
|
||||||
|
(if (< i n)
|
||||||
|
(do
|
||||||
|
(aset a i (first aseq))
|
||||||
|
(recur (next aseq) (inc i)))
|
||||||
|
a)))))
|
||||||
15
samples/Clojure/protocol.cljs
Normal file
15
samples/Clojure/protocol.cljs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
(defprotocol ISound (sound []))
|
||||||
|
|
||||||
|
(deftype Cat []
|
||||||
|
ISound
|
||||||
|
(sound [_] "Meow!"))
|
||||||
|
|
||||||
|
(deftype Dog []
|
||||||
|
ISound
|
||||||
|
(sound [_] "Woof!"))
|
||||||
|
|
||||||
|
(extend-type default
|
||||||
|
ISound
|
||||||
|
(sound [_] "... silence ..."))
|
||||||
|
|
||||||
|
(sound 1) ;; => "... silence ..."
|
||||||
5
samples/Clojure/rand.cljscm
Normal file
5
samples/Clojure/rand.cljscm
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
(defn rand
|
||||||
|
"Returns a random floating point number between 0 (inclusive) and
|
||||||
|
n (default 1) (exclusive)."
|
||||||
|
([] (scm* [n] (random-real)))
|
||||||
|
([n] (* (rand) n)))
|
||||||
20
samples/Clojure/svg.cljx
Normal file
20
samples/Clojure/svg.cljx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
^:clj (ns c2.svg
|
||||||
|
(:use [c2.core :only [unify]]
|
||||||
|
[c2.maths :only [Pi Tau radians-per-degree
|
||||||
|
sin cos mean]]))
|
||||||
|
|
||||||
|
^:cljs (ns c2.svg
|
||||||
|
(:use [c2.core :only [unify]]
|
||||||
|
[c2.maths :only [Pi Tau radians-per-degree
|
||||||
|
sin cos mean]])
|
||||||
|
(:require [c2.dom :as dom]))
|
||||||
|
|
||||||
|
;;Stub for float fn, which does not exist on cljs runtime
|
||||||
|
^:cljs (def float identity)
|
||||||
|
|
||||||
|
(defn ->xy
|
||||||
|
"Convert coordinates (potentially map of `{:x :y}`) to 2-vector."
|
||||||
|
[coordinates]
|
||||||
|
(cond
|
||||||
|
(and (vector? coordinates) (= 2 (count coordinates))) coordinates
|
||||||
|
(map? coordinates) [(:x coordinates) (:y coordinates)]))
|
||||||
20
samples/Clojure/unit-test.cl2
Normal file
20
samples/Clojure/unit-test.cl2
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
(deftest function-tests
|
||||||
|
(is (= 3
|
||||||
|
(count [1 2 3])))
|
||||||
|
(is (= false
|
||||||
|
(not true)))
|
||||||
|
(is (= true
|
||||||
|
(contains? {:foo 1 :bar 2} :foo)))
|
||||||
|
|
||||||
|
(is (= {"foo" 1, "baz" 3}
|
||||||
|
(select-keys {:foo 1 :bar 2 :baz 3} [:foo :baz])))
|
||||||
|
|
||||||
|
(is (= [1 2 3]
|
||||||
|
(vals {:foo 1 :bar 2 :baz 3})))
|
||||||
|
|
||||||
|
(is (= ["foo" "bar" "baz"]
|
||||||
|
(keys {:foo 1 :bar 2 :baz 3})))
|
||||||
|
|
||||||
|
(is (= [2 4 6]
|
||||||
|
(filter (fn [x] (=== (rem x 2) 0)) [1 2 3 4 5 6]))))
|
||||||
|
|
||||||
Reference in New Issue
Block a user