Created
May 11, 2011 21:55
-
-
Save gfredericks/967464 to your computer and use it in GitHub Desktop.
This file contains 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
(def factorial | |
(comp | |
(partial apply apply) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt (constantly apply) (constantly apply))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt (constantly first) (constantly list))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt (constantly first) (constantly list))) | |
(comp | |
(partial apply constantly) | |
(juxt (comp first list))))))))) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt (constantly apply) (constantly apply))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt (constantly apply) (constantly apply))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt (constantly apply) (constantly hash-map))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply constantly) | |
(juxt (constantly true))) | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt (constantly apply) (constantly constantly))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply constantly) | |
(juxt (constantly 1))))))) | |
(comp | |
(partial apply constantly) | |
(juxt (constantly false))) | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt (constantly apply) (constantly comp))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt (constantly apply) (constantly partial))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply constantly) | |
(juxt (constantly apply))) | |
(comp | |
(partial apply constantly) | |
(juxt (constantly *))))))) | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt (constantly apply) (constantly juxt))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt | |
(constantly apply) | |
(constantly constantly))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(constantly last) | |
(constantly list))))))) | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt (constantly apply) (constantly comp))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt | |
(constantly apply) | |
(constantly partial))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply constantly) | |
(juxt (constantly apply))) | |
(comp | |
(partial apply comp) | |
(juxt | |
(constantly first) | |
(constantly list))))))) | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt | |
(constantly apply) | |
(constantly juxt))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt | |
(constantly apply) | |
(constantly constantly))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(constantly first) | |
(constantly list))))))) | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt | |
(constantly apply) | |
(constantly comp))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt | |
(constantly apply) | |
(constantly partial))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply constantly) | |
(juxt (constantly apply))) | |
(comp | |
(partial apply constantly) | |
(juxt (constantly dec))))))) | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt | |
(constantly apply) | |
(constantly juxt))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt | |
(constantly apply) | |
(constantly constantly))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(constantly last) | |
(constantly | |
list))))))))))))))))))))))))))))))))))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt | |
(comp | |
(partial apply partial) | |
(juxt (constantly apply) (constantly zero?))) | |
(comp | |
(partial apply juxt) | |
(juxt | |
(comp | |
(partial apply comp) | |
(juxt (constantly last) (constantly list))))))))))))) | |
(comp (partial apply constantly) (juxt (constantly ()))))))))))) | |
; user=> (factorial 7) | |
; 5040 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Compiled from the code below, which is itself rather verbose because I haven't yet implemented