Guest User

Untitled

a guest
Nov 18th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. (ns ololo
  2. (:require [clojure.core.match :as m])
  3.  
  4. (let [x 2]
  5. (m/match x
  6. 1 :1
  7. 2 :two!
  8. :3))
  9.  
  10. (m/match [false true false true]
  11. [_ true _ false] :1
  12. [false true false true] :ee
  13. [_ true false _] :bb)
  14.  
  15. (m/match [[1 2 3] [4 5 6]]
  16. [[_ 1] [4 5 6]] :1
  17. [[1 2 3] [_ _ _]] :ee
  18. :else :not-found)
  19.  
  20. (m/match '(1 2 3)
  21. ([1 3 _] :seq) :1
  22. ([1 _ _] :seq) :2
  23. ([1] :seq) :3
  24. ([1 2 3] :seq) :ee)
  25.  
  26. (m/match {:a 1 :b 2}
  27. {:a 1 :b 3} :1
  28. {:a _ :b 2} :ee)
  29.  
  30.  
  31. (m/match [1 2 3]
  32. [1 (:or 3 4) 3] :1
  33. [1 (:or 2 4) (:or 2 3)] :ee)
  34.  
  35.  
  36. (m/match [1 3]
  37. [(_ :guard odd?) (_ :guard #(even? %))] :1
  38. [(_ :guard (fn [x] (odd? x))) _] :2)
  39.  
  40.  
  41. (defn fibbonachi [n]
  42. (m/match n
  43. (_ :guard #(<= % 0)) 0
  44. 1 1
  45. _ (+ (fibbonachi (- n 1)) (fibbonachi (- n 2)))))
  46.  
  47. (fibbonachi 7)
  48.  
  49. (map fibbonachi (range 15))
  50.  
  51. (defn green [names]
  52. (m/match (vec (re-seq #"\w+" names))
  53. [nickname] {:nickname nickname}
  54. [first-name last-name]
  55. {:first-name first-name :last-name last-name}
  56. [first-name middle-name last-name]
  57. {:first-name first-name :midlast (str middle-name "-#-" last-name)}
  58. [first-name last-name "of" "house" "name" (:or "ee" "boy")]
  59. {:obe-one last-name}
  60. [& all-names]
  61. (str (count all-names) " prikin! wrong")
  62. :else :not-found))
  63.  
  64. #_(green "nick dreem of house name boy")
Add Comment
Please, Sign In to add comment