fork(2) download
  1. (ns challenge0156-hard.core
  2. (:require [clojure.java.io :refer [reader]]))
  3.  
  4. (defn upside-down-char [c]
  5. (case c
  6. \b \q
  7. \q \b
  8. \d \p
  9. \p \d
  10. \n \u
  11. \u \n
  12. \a \u0250
  13. \c \u0254
  14. \e \u01dd
  15. \f \u025f
  16. \g \u0253
  17. \h \u0265
  18. \i \u0131
  19. \j \u027e
  20. \k \u029e
  21. \m \u026f
  22. \r \u0279
  23. \t \u0287
  24. \v \u028c
  25. \w \u028d
  26. \y \u028e
  27. \M \W
  28. \W \M
  29. \A \u2200
  30. \B (apply str (Character/toChars 0x10412))
  31. \C \u0186
  32. \D \u15e1
  33. \E \u018e
  34. \F \u2132
  35. \G \u2141
  36. \J \u017f
  37. \K \u22ca
  38. \L \u2142
  39. \P \u0500
  40. \Q \u038c
  41. \R \u1d1a
  42. \T \u22a5
  43. \U \u2229
  44. \V \u039b
  45. \Y \u2144
  46. \6 \9
  47. \9 \6
  48. \7 \u3125
  49. \5 \u078e
  50. \4 \u3123
  51. \3 \u218b
  52. \2 \u218a
  53. \1 \u21c2
  54. \. \u02d9
  55. \! \u00a1
  56. \? \u00bf
  57. c))
  58.  
  59. (defn upside-down-line [line]
  60. (apply str (map upside-down-char (reverse line))))
  61.  
  62. (defn upside-down-text []
  63. (doseq [line (reverse (line-seq (reader *in*)))]
  64. (println (upside-down-line line))))
  65.  
  66. (upside-down-text)
Success #stdin #stdout 1.43s 389120KB
stdin
This is some text that I am writing!
Soon it will be just 4 lines of upside down text.
How did they do it? 
We will all know soon.
stdout
˙uoos ʍouʞ llɐ llıʍ ǝM
 ¿ʇı op ʎǝɥʇ pıp ʍoH
˙ʇxǝʇ uʍop ǝpısdn ɟo sǝuıl ㄣ ʇsnɾ ǝq llıʍ ʇı uooS
¡ɓuıʇıɹʍ ɯɐ I ʇɐɥʇ ʇxǝʇ ǝɯos sı sıɥ⊥