mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Merge pull request #757 from chlorinejs/clojure-samples
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