Skip to content

Commit

Permalink
Improve Anagrams responsiveness a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
Kazark committed Nov 21, 2014
1 parent f1220f7 commit 2e8aeca
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
5 changes: 5 additions & 0 deletions Anagrams/Anagrams.Specs.Unit/AnagramsUnitSpecs.fs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ let specs =
AnagramList.empty
|> AnagramList.add "foo"
|> AnagramList.format
|> String.concat "\n"
|> should (equal "foo")
]
context "when I add 'foo' and 'bar'" [
Expand All @@ -19,6 +20,7 @@ let specs =
|> AnagramList.add "foo"
|> AnagramList.add "bar"
|> AnagramList.format
|> String.concat "\n"
|> should (equal "bar\nfoo")
]
context "when I add 'dog' and 'god'" [
Expand All @@ -27,6 +29,7 @@ let specs =
|> AnagramList.add "dog"
|> AnagramList.add "god"
|> AnagramList.format
|> String.concat "\n"
|> should (equal "dog god")
]
context "when I add a variety of words, some of which are anagrams of each other" [
Expand All @@ -39,13 +42,15 @@ let specs =
|> AnagramList.add "no"
|> AnagramList.add "on"
|> AnagramList.format
|> String.concat "\n"
|> should (equal "bar\ndog god\nfoo\nno on")
]
context "when I stream in lines, each of which has a word on it" [
it "should find the anagrams" <| fun _ ->
let input = "boaster\nboaters\nborates\nenlist\ninlets\nkinship\nlisten\npinkish"
input.Split [|'\n'|]
|> AnagramList.findAnagrams
|> String.concat "\n"
|> should (equal "boaster boaters borates\nenlist inlets listen\nkinship pinkish")
]
]
Expand Down
1 change: 0 additions & 1 deletion Anagrams/Anagrams/Anagrams.fs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ module AnagramList =
Seq.sort anagrams |> String.concat " "
listsOfAnagrams
|> Seq.map formatLine
|> String.concat "\n"

let findAnagrams lines =
lines
Expand Down
6 changes: 4 additions & 2 deletions Anagrams/Anagrams/Program.fs
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,7 @@ module Main =

[<EntryPoint>]
let main _ =
linesFromStdin() |> AnagramList.findAnagrams |> Console.Write
0
let anagrams = linesFromStdin() |> AnagramList.findAnagrams
for line in anagrams do
Console.WriteLine line
0

0 comments on commit 2e8aeca

Please sign in to comment.