-
-
Save chrisvest/952056 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; chrisvest's solution to http://4clojure.com/problem/53 | |
(fn [xs] (or (->> | |
(map vector xs (range)) | |
(partition-by #(apply - %)) | |
(map #(map first %)) | |
(filter #(> (count %) 1)) | |
(sort-by (comp - count)) | |
first) [])) |
No, that last phrase is particularly useful advice thanks. I tried this problem and ended up with a huge ugly nested if function .. So finding this concise answer was quite an eye opener.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Good knowledge if the available functions for the seq abstraction gives you a vocabulary for your thoughts, if that makes sense, so you can think at a higher level and therefore more effectively. Then I guess I just think about the data structure that comes into the function and the data structure I want out of it, and what path that might take. Then once I got something that works, I just golf it for the fun of it until something like this comes out.
This is probably not a very helpful description of how to solve problems in general :P
But basically, I ask myself that, if the problem is hard, then how can I get it into a data structure where the problem is easy?