trackler 2.2.1.113 → 2.2.1.114

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/exercises/hello-world/hello_world.sh +1 -1
  4. data/tracks/c/config.json +24 -0
  5. data/tracks/c/exercises/two-fer/README.md +12 -0
  6. data/tracks/c/exercises/two-fer/makefile +25 -0
  7. data/tracks/c/exercises/two-fer/src/example.c +11 -0
  8. data/tracks/c/exercises/two-fer/src/example.h +6 -0
  9. data/tracks/c/exercises/two-fer/test/test_two_fer.c +51 -0
  10. data/tracks/c/exercises/two-fer/test/vendor/unity.c +1300 -0
  11. data/tracks/c/exercises/two-fer/test/vendor/unity.h +274 -0
  12. data/tracks/c/exercises/two-fer/test/vendor/unity_internals.h +701 -0
  13. data/tracks/c/exercises/wordy/README.md +51 -0
  14. data/tracks/c/exercises/wordy/makefile +25 -0
  15. data/tracks/c/exercises/wordy/src/example.c +53 -0
  16. data/tracks/c/exercises/wordy/src/example.h +7 -0
  17. data/tracks/c/exercises/wordy/test/test_wordy.c +206 -0
  18. data/tracks/c/exercises/wordy/test/vendor/unity.c +1300 -0
  19. data/tracks/c/exercises/wordy/test/vendor/unity.h +274 -0
  20. data/tracks/c/exercises/wordy/test/vendor/unity_internals.h +701 -0
  21. data/tracks/dart/.gitignore +6 -7
  22. data/tracks/dart/bin/create_exercise.dart +17 -17
  23. data/tracks/dart/exercises/anagram/lib/anagram.dart +1 -1
  24. data/tracks/dart/exercises/anagram/test/anagram_test.dart +27 -31
  25. data/tracks/dart/exercises/bob/lib/example.dart +7 -1
  26. data/tracks/dart/exercises/bob/test/bob_test.dart +81 -43
  27. data/tracks/dart/exercises/difference-of-squares/lib/example.dart +3 -3
  28. data/tracks/dart/exercises/difference-of-squares/test/difference_of_squares_test.dart +26 -17
  29. data/tracks/dart/pubspec.lock +28 -16
  30. data/tracks/dart/pubspec.yaml +2 -2
  31. data/tracks/elixir/.travis.yml +3 -3
  32. data/tracks/elixir/README.md +1 -1
  33. data/tracks/elixir/config.json +12 -0
  34. data/tracks/elixir/exercises/alphametics/README.md +73 -0
  35. data/tracks/elixir/exercises/alphametics/alphametics.exs +21 -0
  36. data/tracks/elixir/exercises/alphametics/alphametics_test.exs +162 -0
  37. data/tracks/elixir/exercises/alphametics/example.exs +70 -0
  38. data/tracks/elixir/mix.exs +1 -1
  39. data/tracks/elixir/mix.lock +0 -1
  40. data/tracks/elm/config.json +9 -0
  41. data/tracks/elm/exercises/accumulate/Accumulate.elm +6 -1
  42. data/tracks/elm/exercises/accumulate/Accumulate.example.elm +1 -1
  43. data/tracks/elm/exercises/acronym/Acronym.elm +6 -1
  44. data/tracks/elm/exercises/acronym/Acronym.example.elm +1 -1
  45. data/tracks/elm/exercises/all-your-base/AllYourBase.elm +6 -1
  46. data/tracks/elm/exercises/all-your-base/AllYourBase.example.elm +1 -1
  47. data/tracks/elm/exercises/allergies/Allergies.elm +11 -1
  48. data/tracks/elm/exercises/allergies/Allergies.example.elm +1 -1
  49. data/tracks/elm/exercises/anagram/Anagram.elm +6 -1
  50. data/tracks/elm/exercises/anagram/Anagram.example.elm +1 -1
  51. data/tracks/elm/exercises/atbash-cipher/AtbashCipher.elm +11 -1
  52. data/tracks/elm/exercises/atbash-cipher/AtbashCipher.example.elm +1 -1
  53. data/tracks/elm/exercises/binary-search/BinarySearch.elm +1 -2
  54. data/tracks/elm/exercises/bob/Bob.elm +6 -1
  55. data/tracks/elm/exercises/bob/Bob.example.elm +1 -1
  56. data/tracks/elm/exercises/collatz-conjecture/CollatzConjecture.elm +5 -1
  57. data/tracks/elm/exercises/difference-of-squares/DifferenceOfSquares.elm +16 -1
  58. data/tracks/elm/exercises/difference-of-squares/DifferenceOfSquares.example.elm +1 -1
  59. data/tracks/elm/exercises/etl/Etl.elm +5 -0
  60. data/tracks/elm/exercises/gigasecond/Gigasecond.elm +5 -0
  61. data/tracks/elm/exercises/grade-school/GradeSchool.elm +32 -1
  62. data/tracks/elm/exercises/grade-school/GradeSchool.example.elm +1 -1
  63. data/tracks/elm/exercises/grains/Grains.elm +5 -1
  64. data/tracks/elm/exercises/grains/Grains.example.elm +1 -1
  65. data/tracks/elm/exercises/hamming/Hamming.elm +6 -1
  66. data/tracks/elm/exercises/hello-world/HelloWorld.elm +2 -2
  67. data/tracks/elm/exercises/hello-world/HelloWorld.example.elm +1 -1
  68. data/tracks/elm/exercises/isogram/Isogram.elm +6 -1
  69. data/tracks/elm/exercises/largest-series-product/LargestSeriesProduct.elm +5 -0
  70. data/tracks/elm/exercises/leap/Leap.elm +6 -1
  71. data/tracks/elm/exercises/leap/Leap.example.elm +1 -1
  72. data/tracks/elm/exercises/list-ops/ListOps.elm +51 -1
  73. data/tracks/elm/exercises/list-ops/ListOps.example.elm +11 -1
  74. data/tracks/elm/exercises/list-ops/tests/Tests.elm +1 -1
  75. data/tracks/elm/exercises/luhn/Luhn.elm +6 -1
  76. data/tracks/elm/exercises/nucleotide-count/NucleotideCount.elm +14 -1
  77. data/tracks/elm/exercises/nucleotide-count/NucleotideCount.example.elm +1 -1
  78. data/tracks/elm/exercises/pangram/Pangram.elm +6 -1
  79. data/tracks/elm/exercises/pangram/Pangram.example.elm +1 -1
  80. data/tracks/elm/exercises/pascals-triangle/Triangle.elm +6 -1
  81. data/tracks/elm/exercises/phone-number/PhoneNumber.elm +11 -1
  82. data/tracks/elm/exercises/phone-number/PhoneNumber.example.elm +1 -1
  83. data/tracks/elm/exercises/raindrops/Raindrops.elm +6 -1
  84. data/tracks/elm/exercises/raindrops/Raindrops.example.elm +1 -1
  85. data/tracks/elm/exercises/rna-transcription/RNATranscription.elm +6 -1
  86. data/tracks/elm/exercises/robot-simulator/RobotSimulator.elm +48 -1
  87. data/tracks/elm/exercises/robot-simulator/RobotSimulator.example.elm +10 -1
  88. data/tracks/elm/exercises/roman-numerals/RomanNumerals.elm +5 -0
  89. data/tracks/elm/exercises/run-length-encoding/RunLengthEncoding.elm +11 -2
  90. data/tracks/elm/exercises/say/Say.elm +11 -1
  91. data/tracks/elm/exercises/scrabble-score/ScrabbleScore.elm +6 -1
  92. data/tracks/elm/exercises/scrabble-score/ScrabbleScore.example.elm +1 -1
  93. data/tracks/elm/exercises/series/Series.elm +6 -1
  94. data/tracks/elm/exercises/series/Series.example.elm +1 -1
  95. data/tracks/elm/exercises/space-age/SpaceAge.elm +6 -1
  96. data/tracks/elm/exercises/space-age/SpaceAge.example.elm +1 -1
  97. data/tracks/elm/exercises/strain/Strain.elm +11 -1
  98. data/tracks/elm/exercises/strain/Strain.example.elm +1 -1
  99. data/tracks/elm/exercises/sublist/Sublist.elm +13 -1
  100. data/tracks/elm/exercises/sublist/Sublist.example.elm +1 -1
  101. data/tracks/elm/exercises/sum-of-multiples/SumOfMultiples.elm +6 -1
  102. data/tracks/elm/exercises/sum-of-multiples/SumOfMultiples.example.elm +1 -1
  103. data/tracks/elm/exercises/transpose/README.md +95 -0
  104. data/tracks/elm/exercises/transpose/Transpose.elm +6 -0
  105. data/tracks/elm/exercises/transpose/Transpose.example.elm +47 -0
  106. data/tracks/elm/exercises/transpose/elm-package.json +15 -0
  107. data/tracks/elm/exercises/transpose/tests/Tests.elm +202 -0
  108. data/tracks/elm/exercises/transpose/tests/elm-package.json +16 -0
  109. data/tracks/elm/exercises/triangle/Triangle.elm +12 -1
  110. data/tracks/elm/exercises/triangle/Triangle.example.elm +1 -1
  111. data/tracks/elm/exercises/twelve-days/TwelveDays.elm +6 -1
  112. data/tracks/elm/exercises/word-count/WordCount.elm +3 -1
  113. data/tracks/elm/exercises/word-count/WordCount.example.elm +1 -1
  114. data/tracks/go/exercises/crypto-square/crypto_square_test.go +9 -9
  115. data/tracks/go/exercises/crypto-square/example.go +7 -0
  116. data/tracks/idris/docs/INSTALLATION.md +4 -4
  117. data/tracks/java/config.json +13 -0
  118. data/tracks/java/exercises/alphametics/.meta/version +1 -0
  119. data/tracks/java/exercises/go-counting/.meta/src/reference/java/GoCounting.java +152 -0
  120. data/tracks/java/exercises/go-counting/.meta/src/reference/java/Player.java +3 -0
  121. data/tracks/java/exercises/go-counting/.meta/version +2 -0
  122. data/tracks/java/exercises/go-counting/README.md +50 -0
  123. data/tracks/java/exercises/go-counting/build.gradle +18 -0
  124. data/tracks/java/exercises/go-counting/src/main/java/.keep +0 -0
  125. data/tracks/java/exercises/go-counting/src/main/java/Player.java +3 -0
  126. data/tracks/java/exercises/go-counting/src/test/java/GoCountingTest.java +178 -0
  127. data/tracks/java/exercises/isogram/.meta/version +1 -1
  128. data/tracks/java/exercises/perfect-numbers/.meta/version +1 -1
  129. data/tracks/java/exercises/settings.gradle +1 -0
  130. data/tracks/javascript/.eslintignore +0 -1
  131. data/tracks/javascript/exercises/minesweeper/example.js +15 -15
  132. data/tracks/javascript/package-lock.json +7 -14
  133. data/tracks/javascript/package.json +1 -1
  134. data/tracks/perl6/exercises/grains/.meta/exercise-data.yaml +2 -2
  135. data/tracks/perl6/exercises/grains/grains.t +34 -13
  136. data/tracks/r/config.json +13 -0
  137. data/tracks/r/exercises/bob/README.md +2 -0
  138. data/tracks/r/exercises/bob/example.R +5 -0
  139. data/tracks/r/exercises/bob/test_bob.R +1 -1
  140. data/tracks/r/exercises/crypto-square/README.md +84 -0
  141. data/tracks/r/exercises/crypto-square/crypto-square.R +15 -0
  142. data/tracks/r/exercises/crypto-square/example.R +47 -0
  143. data/tracks/r/exercises/crypto-square/test_crypto-square.R +65 -0
  144. data/tracks/rust/exercises/allergies/tests/allergies.rs +36 -36
  145. data/tracks/rust/exercises/book-store/Cargo-example.toml +1 -2
  146. data/tracks/rust/exercises/book-store/Cargo.toml +1 -1
  147. data/tracks/rust/exercises/book-store/example.rs +10 -14
  148. data/tracks/rust/exercises/book-store/src/lib.rs +1 -1
  149. data/tracks/rust/exercises/book-store/tests/book-store.rs +15 -15
  150. data/tracks/rust/exercises/dominoes/example.rs +3 -3
  151. data/tracks/rust/exercises/dominoes/tests/dominoes.rs +26 -26
  152. data/tracks/rust/exercises/grade-school/tests/grade-school.rs +5 -5
  153. data/tracks/rust/exercises/poker/tests/poker.rs +55 -55
  154. data/tracks/rust/exercises/react/tests/react.rs +28 -28
  155. data/tracks/rust/exercises/rectangles/example.rs +1 -1
  156. data/tracks/rust/exercises/rectangles/tests/rectangles.rs +26 -26
  157. data/tracks/rust/exercises/simple-linked-list/tests/simple-linked-list.rs +1 -1
  158. data/tracks/rust/exercises/sum-of-multiples/tests/sum-of-multiples.rs +12 -12
  159. data/tracks/rust/exercises/variable-length-quantity/example.rs +9 -3
  160. data/tracks/rust/exercises/variable-length-quantity/src/lib.rs +7 -1
  161. data/tracks/rust/exercises/variable-length-quantity/tests/variable-length-quantity.rs +3 -3
  162. data/tracks/rust/exercises/word-count/tests/word-count.rs +20 -20
  163. data/tracks/scala/exercises/secret-handshake/src/test/scala/SecretHandshakeTest.scala +2 -2
  164. data/tracks/scala/exercises/sieve/src/test/scala/SieveTest.scala +12 -12
  165. data/tracks/scala/testgen/src/main/scala/SecretHandshakeTestGenerator.scala +2 -2
  166. data/tracks/scala/testgen/src/main/scala/SieveTestGenerator.scala +2 -2
  167. data/tracks/typescript/config.json +68 -0
  168. data/tracks/typescript/exercises/armstrong-numbers/README.md +44 -0
  169. data/tracks/typescript/exercises/armstrong-numbers/armstrong-numbers.example.ts +11 -0
  170. data/tracks/typescript/exercises/armstrong-numbers/armstrong-numbers.test.ts +35 -0
  171. data/tracks/typescript/exercises/armstrong-numbers/armstrong-numbers.ts +0 -0
  172. data/tracks/typescript/exercises/armstrong-numbers/package.json +36 -0
  173. data/tracks/typescript/exercises/armstrong-numbers/tsconfig.json +22 -0
  174. data/tracks/typescript/exercises/armstrong-numbers/tslint.json +127 -0
  175. data/tracks/typescript/exercises/armstrong-numbers/yarn.lock +2624 -0
  176. data/tracks/typescript/exercises/perfect-numbers/README.md +50 -0
  177. data/tracks/typescript/exercises/perfect-numbers/package.json +36 -0
  178. data/tracks/typescript/exercises/perfect-numbers/perfect-numbers.example.ts +55 -0
  179. data/tracks/typescript/exercises/perfect-numbers/perfect-numbers.test.ts +72 -0
  180. data/tracks/typescript/exercises/perfect-numbers/perfect-numbers.ts +0 -0
  181. data/tracks/typescript/exercises/perfect-numbers/tsconfig.json +22 -0
  182. data/tracks/typescript/exercises/perfect-numbers/tslint.json +127 -0
  183. data/tracks/typescript/exercises/perfect-numbers/yarn.lock +2624 -0
  184. data/tracks/typescript/exercises/rational-numbers/README.md +61 -0
  185. data/tracks/typescript/exercises/rational-numbers/package.json +36 -0
  186. data/tracks/typescript/exercises/rational-numbers/rational-numbers.example.ts +76 -0
  187. data/tracks/typescript/exercises/rational-numbers/rational-numbers.test.ts +197 -0
  188. data/tracks/typescript/exercises/rational-numbers/rational-numbers.ts +0 -0
  189. data/tracks/typescript/exercises/rational-numbers/tsconfig.json +22 -0
  190. data/tracks/typescript/exercises/rational-numbers/tslint.json +127 -0
  191. data/tracks/typescript/exercises/rational-numbers/yarn.lock +2624 -0
  192. data/tracks/typescript/exercises/run-length-encoding/README.md +56 -0
  193. data/tracks/typescript/exercises/run-length-encoding/package.json +36 -0
  194. data/tracks/typescript/exercises/run-length-encoding/run-length-encoding.example.ts +15 -0
  195. data/tracks/typescript/exercises/run-length-encoding/run-length-encoding.test.ts +71 -0
  196. data/tracks/typescript/exercises/run-length-encoding/run-length-encoding.ts +0 -0
  197. data/tracks/typescript/exercises/run-length-encoding/tsconfig.json +22 -0
  198. data/tracks/typescript/exercises/run-length-encoding/tslint.json +127 -0
  199. data/tracks/typescript/exercises/run-length-encoding/yarn.lock +2624 -0
  200. data/tracks/typescript/exercises/secret-handshake/README.md +61 -0
  201. data/tracks/typescript/exercises/secret-handshake/package.json +36 -0
  202. data/tracks/typescript/exercises/secret-handshake/secret-handshake.example.ts +43 -0
  203. data/tracks/typescript/exercises/secret-handshake/secret-handshake.test.ts +69 -0
  204. data/tracks/typescript/exercises/secret-handshake/secret-handshake.ts +0 -0
  205. data/tracks/typescript/exercises/secret-handshake/tsconfig.json +22 -0
  206. data/tracks/typescript/exercises/secret-handshake/tslint.json +127 -0
  207. data/tracks/typescript/exercises/secret-handshake/yarn.lock +2624 -0
  208. metadata +81 -7
  209. data/tracks/dart/exercises/anagram/pubspec.lock +0 -293
  210. data/tracks/dart/exercises/bob/pubspec.lock +0 -293
  211. data/tracks/dart/exercises/difference-of-squares/pubspec.lock +0 -293
  212. data/tracks/java/exercises/alphametics/.meta/src/version +0 -1
  213. data/tracks/r/exercises/bob/.meta/description.md +0 -10
@@ -0,0 +1,6 @@
1
+ module Transpose exposing (transpose)
2
+
3
+
4
+ transpose : List String -> List String
5
+ transpose lines =
6
+ Debug.crash "Please implement this function"
@@ -0,0 +1,47 @@
1
+ module Transpose exposing (transpose)
2
+
3
+ import List
4
+ import String
5
+
6
+
7
+ transpose : List String -> List String
8
+ transpose lines =
9
+ let
10
+ longestRow =
11
+ Maybe.withDefault 0 <|
12
+ List.maximum <|
13
+ List.map String.length lines
14
+
15
+ padNothingRight maxLength line =
16
+ line ++ List.repeat (maxLength - List.length line) Nothing
17
+
18
+ stringify line =
19
+ String.concat <|
20
+ List.map
21
+ (\x ->
22
+ case x of
23
+ Nothing ->
24
+ " "
25
+
26
+ Just c ->
27
+ String.fromChar c
28
+ )
29
+ (dropNothingRight line)
30
+
31
+ dropNothingRight line =
32
+ Tuple.second <|
33
+ List.foldr
34
+ (\x ( ignore, list ) ->
35
+ if ignore && x == Nothing then
36
+ ( ignore, list )
37
+ else
38
+ ( False, x :: list )
39
+ )
40
+ ( True, [] )
41
+ line
42
+ in
43
+ List.map stringify <|
44
+ List.foldr
45
+ (List.map2 (::))
46
+ (List.repeat longestRow [])
47
+ (List.map (padNothingRight longestRow << List.map Just << String.toList) lines)
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "3.0.0",
3
+ "summary": "Exercism problems in Elm.",
4
+ "repository": "https://github.com/exercism/elm.git",
5
+ "license": "BSD3",
6
+ "source-directories": [
7
+ "."
8
+ ],
9
+ "exposed-modules": [],
10
+ "dependencies": {
11
+ "elm-lang/core": "5.0.0 <= v < 6.0.0"
12
+ },
13
+ "elm-version": "0.18.0 <= v < 0.19.0"
14
+ }
15
+
@@ -0,0 +1,202 @@
1
+ module Tests exposing (..)
2
+
3
+ import Expect
4
+ import Test exposing (Test, describe, skip, test)
5
+ import Transpose exposing (transpose)
6
+
7
+
8
+ tests : Test
9
+ tests =
10
+ describe "Hamming"
11
+ [ test "empty string" <|
12
+ \_ ->
13
+ Expect.equal [] (transpose [])
14
+ , skip <|
15
+ test "two characters in a row" <|
16
+ \_ ->
17
+ Expect.equal
18
+ [ "A"
19
+ , "1"
20
+ ]
21
+ (transpose [ "A1" ])
22
+ , skip <|
23
+ test "two characters in a column" <|
24
+ \_ ->
25
+ Expect.equal
26
+ [ "A1" ]
27
+ (transpose
28
+ [ "A"
29
+ , "1"
30
+ ]
31
+ )
32
+ , skip <|
33
+ test "simple" <|
34
+ \_ ->
35
+ Expect.equal
36
+ [ "A1"
37
+ , "B2"
38
+ , "C3"
39
+ ]
40
+ (transpose
41
+ [ "ABC"
42
+ , "123"
43
+ ]
44
+ )
45
+ , skip <|
46
+ test "single line" <|
47
+ \_ ->
48
+ Expect.equal
49
+ [ "S"
50
+ , "i"
51
+ , "n"
52
+ , "g"
53
+ , "l"
54
+ , "e"
55
+ , " "
56
+ , "l"
57
+ , "i"
58
+ , "n"
59
+ , "e"
60
+ , "."
61
+ ]
62
+ (transpose [ "Single line." ])
63
+ , skip <|
64
+ test "first line longer than second line" <|
65
+ \_ ->
66
+ Expect.equal
67
+ [ "TT"
68
+ , "hh"
69
+ , "ee"
70
+ , " "
71
+ , "ff"
72
+ , "oi"
73
+ , "uf"
74
+ , "rt"
75
+ , "th"
76
+ , "h "
77
+ , " l"
78
+ , "li"
79
+ , "in"
80
+ , "ne"
81
+ , "e."
82
+ , "."
83
+ ]
84
+ (transpose
85
+ [ "The fourth line."
86
+ , "The fifth line."
87
+ ]
88
+ )
89
+ , skip <|
90
+ test "second line longer than first line" <|
91
+ \_ ->
92
+ Expect.equal
93
+ [ "TT"
94
+ , "hh"
95
+ , "ee"
96
+ , " "
97
+ , "fs"
98
+ , "ie"
99
+ , "rc"
100
+ , "so"
101
+ , "tn"
102
+ , " d"
103
+ , "l "
104
+ , "il"
105
+ , "ni"
106
+ , "en"
107
+ , ".e"
108
+ , " ."
109
+ ]
110
+ (transpose
111
+ [ "The first line."
112
+ , "The second line."
113
+ ]
114
+ )
115
+ , skip <|
116
+ test "mixed line length" <|
117
+ \_ ->
118
+ Expect.equal
119
+ [ "TAAA"
120
+ , "h "
121
+ , "elll"
122
+ , " ooi"
123
+ , "lnnn"
124
+ , "ogge"
125
+ , "n e."
126
+ , "glr"
127
+ , "ei "
128
+ , "snl"
129
+ , "tei"
130
+ , " .n"
131
+ , "l e"
132
+ , "i ."
133
+ , "n"
134
+ , "e"
135
+ , "."
136
+ ]
137
+ (transpose
138
+ [ "The longest line."
139
+ , "A long line."
140
+ , "A longer line."
141
+ , "A line."
142
+ ]
143
+ )
144
+ , skip <|
145
+ test "square" <|
146
+ \_ ->
147
+ Expect.equal
148
+ [ "HEART"
149
+ , "EMBER"
150
+ , "ABUSE"
151
+ , "RESIN"
152
+ , "TREND"
153
+ ]
154
+ (transpose
155
+ [ "HEART"
156
+ , "EMBER"
157
+ , "ABUSE"
158
+ , "RESIN"
159
+ , "TREND"
160
+ ]
161
+ )
162
+ , skip <|
163
+ test "rectangle" <|
164
+ \_ ->
165
+ Expect.equal
166
+ [ "FOBS"
167
+ , "RULE"
168
+ , "ATOP"
169
+ , "CLOT"
170
+ , "TIME"
171
+ , "UNIT"
172
+ , "RENT"
173
+ , "EDGE"
174
+ ]
175
+ (transpose
176
+ [ "FRACTURE"
177
+ , "OUTLINED"
178
+ , "BLOOMING"
179
+ , "SEPTETTE"
180
+ ]
181
+ )
182
+ , skip <|
183
+ test "triangle" <|
184
+ \_ ->
185
+ Expect.equal
186
+ [ "TEASER"
187
+ , " EASER"
188
+ , " ASER"
189
+ , " SER"
190
+ , " ER"
191
+ , " R"
192
+ ]
193
+ (transpose
194
+ [ "T"
195
+ , "EE"
196
+ , "AAA"
197
+ , "SSSS"
198
+ , "EEEEE"
199
+ , "RRRRRR"
200
+ ]
201
+ )
202
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "version": "3.0.0",
3
+ "summary": "Exercism problems in Elm.",
4
+ "repository": "https://github.com/exercism/elm.git",
5
+ "license": "BSD3",
6
+ "source-directories": [
7
+ ".",
8
+ ".."
9
+ ],
10
+ "exposed-modules": [],
11
+ "dependencies": {
12
+ "elm-lang/core": "5.0.0 <= v < 6.0.0",
13
+ "elm-community/elm-test": "4.0.0 <= v < 5.0.0"
14
+ },
15
+ "elm-version": "0.18.0 <= v < 0.19.0"
16
+ }
@@ -1,6 +1,17 @@
1
- module Triangle exposing (..)
1
+ module Triangle exposing (Triangle(..), triangleKind, version)
2
+
3
+
4
+ type Triangle
5
+ = Equilateral
6
+ | Isosceles
7
+ | Scalene
2
8
 
3
9
 
4
10
  version : Int
5
11
  version =
6
12
  2
13
+
14
+
15
+ triangleKind : comparable -> comparable -> comparable -> Result String Triangle
16
+ triangleKind x y z =
17
+ Debug.crash "Please implement this function"
@@ -1,4 +1,4 @@
1
- module Triangle exposing (..)
1
+ module Triangle exposing (Triangle(..), triangleKind, version)
2
2
 
3
3
  import Set
4
4
 
@@ -1 +1,6 @@
1
- module TwelveDays exposing (..)
1
+ module TwelveDays exposing (recite)
2
+
3
+
4
+ recite : Int -> Int -> List String
5
+ recite start stop =
6
+ Debug.crash "Please implement this function"
@@ -1,4 +1,6 @@
1
- module WordCount exposing (..)
1
+ module WordCount exposing (wordCount)
2
2
 
3
3
 
4
4
  wordCount : String -> Dict String Int
5
+ wordCount sentence =
6
+ Debug.crash "Please implement this function"
@@ -1,4 +1,4 @@
1
- module WordCount exposing (..)
1
+ module WordCount exposing (wordCount)
2
2
 
3
3
  import Dict exposing (Dict)
4
4
  import Regex
@@ -12,7 +12,7 @@ var tests = []struct {
12
12
  },
13
13
  {
14
14
  "1, 2, 3 GO!",
15
- "1g 2o 3",
15
+ "1g 2o 3 ",
16
16
  },
17
17
  {
18
18
  "1234",
@@ -32,19 +32,19 @@ var tests = []struct {
32
32
  },
33
33
  {
34
34
  "ZOMG! ZOMBIES!!!",
35
- "zzi ooe mms gb",
35
+ "zzi ooe mms gb ",
36
36
  },
37
37
  {
38
38
  "Time is an illusion. Lunchtime doubly so.",
39
- "tasney inicds miohoo elntu illib suuml",
39
+ "tasney inicds miohoo elntu illib suuml ",
40
40
  },
41
41
  {
42
42
  "We all know interspecies romance is weird.",
43
- "wneiaw eorene awssci liprer lneoid ktcms",
43
+ "wneiaw eorene awssci liprer lneoid ktcms ",
44
44
  },
45
45
  {
46
46
  "Madness, and then illumination.",
47
- "msemo aanin dnin ndla etlt shui",
47
+ "msemo aanin dnin ndla etlt shui ",
48
48
  },
49
49
  {
50
50
  "Vampires are people too!",
@@ -64,19 +64,19 @@ var tests = []struct {
64
64
  },
65
65
  {
66
66
  "12 3",
67
- "13 2",
67
+ "13 2 ",
68
68
  },
69
69
  {
70
70
  "12345678",
71
- "147 258 36",
71
+ "147 258 36 ",
72
72
  },
73
73
  {
74
74
  "123456789a",
75
- "159 26a 37 48",
75
+ "159 26a 37 48 ",
76
76
  },
77
77
  {
78
78
  "If man was meant to stay on the ground god would have given us roots",
79
- "imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau",
79
+ "imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau ",
80
80
  },
81
81
  {
82
82
  "Have a nice day. Feed the dog & chill out!",
@@ -18,9 +18,16 @@ func norm(r rune) rune {
18
18
  func Encode(pt string) string {
19
19
  pt = strings.Map(norm, pt)
20
20
  numCols := int(math.Ceil(math.Sqrt(float64(len(pt)))))
21
+ padding := numCols*(numCols-1) - len(pt)
22
+ if padding < 0 {
23
+ padding = numCols*numCols - len(pt)
24
+ }
21
25
  cols := make([]string, numCols)
22
26
  for i, r := range pt {
23
27
  cols[i%numCols] += string(r)
24
28
  }
29
+ for i := 0; i < padding; i++ {
30
+ cols[numCols-i-1] += " "
31
+ }
25
32
  return strings.Join(cols, " ")
26
33
  }
@@ -13,8 +13,8 @@ The easiest way to install Idris, if you have all of the prerequisites, is to ty
13
13
  cabal update; cabal install idris
14
14
  ```
15
15
 
16
- This will install the latest version released on Hackage, along with any dependencies.
17
- If, however, you would like the most up to date development version you can find it,
16
+ This will install the latest version released on Hackage, along with any dependencies.
17
+ If, however, you would like the most up to date development version you can find it,
18
18
  as well as build instructions, on GitHub at: https://github.com/idris-lang/Idris-dev.
19
19
 
20
20
  ## Necessary libraries
@@ -27,11 +27,11 @@ This library provides the actual testing framework we use. It's installation is
27
27
 
28
28
  ```shell
29
29
  pushd /tmp
30
- git clone git clone git@github.com:jfdm/idris-testing.git
30
+ git clone git@github.com:jfdm/idris-testing.git
31
31
  cd idris-testing
32
32
  make lib
33
33
  make install # depending on your installation of idris this might need to be run as root
34
34
  popd
35
35
  ```
36
36
 
37
- If the tests will ever brake because of calling things that your installed version of `idris-testing` does not provide, you have to update it by repeating the steps above.
37
+ If the tests will ever brake because of calling things that your installed version of `idris-testing` does not provide, you have to update it by repeating the steps above.