(ns deftest (:require [clojure.test :as test])) (defn Main [nl n] (if (= n 1) nl (for [x (Main nl (- n 1)) t nl :when (not (= (last x) (second t)))] (.concat x t)))) (test/deftest deftest (test/testing "Test" (test/is (= (Main [] 5) ())) (test/is (= (Main ["n"] 5 ) ())) (test/is (= (Main ["n" "m"] 5 ) ())) (test/is (= (Main ["n" "m" "l"] 5 ()))))) (pr (Main ["n" "m" "l"] 5))
Standard input is empty
("nnnnn" "nnnnm" "nnnnl" "nnnmn" "nnnmm" "nnnml" "nnnln" "nnnlm" "nnnll" "nnmnn" "nnmnm" "nnmnl" "nnmmn" "nnmmm" "nnmml" "nnmln" "nnmlm" "nnmll" "nnlnn" "nnlnm" "nnlnl" "nnlmn" "nnlmm" "nnlml" "nnlln" "nnllm" "nnlll" "nmnnn" "nmnnm" "nmnnl" "nmnmn" "nmnmm" "nmnml" "nmnln" "nmnlm" "nmnll" "nmmnn" "nmmnm" "nmmnl" "nmmmn" "nmmmm" "nmmml" "nmmln" "nmmlm" "nmmll" "nmlnn" "nmlnm" "nmlnl" "nmlmn" "nmlmm" "nmlml" "nmlln" "nmllm" "nmlll" "nlnnn" "nlnnm" "nlnnl" "nlnmn" "nlnmm" "nlnml" "nlnln" "nlnlm" "nlnll" "nlmnn" "nlmnm" "nlmnl" "nlmmn" "nlmmm" "nlmml" "nlmln" "nlmlm" "nlmll" "nllnn" "nllnm" "nllnl" "nllmn" "nllmm" "nllml" "nllln" "nlllm" "nllll" "mnnnn" "mnnnm" "mnnnl" "mnnmn" "mnnmm" "mnnml" "mnnln" "mnnlm" "mnnll" "mnmnn" "mnmnm" "mnmnl" "mnmmn" "mnmmm" "mnmml" "mnmln" "mnmlm" "mnmll" "mnlnn" "mnlnm" "mnlnl" "mnlmn" "mnlmm" "mnlml" "mnlln" "mnllm" "mnlll" "mmnnn" "mmnnm" "mmnnl" "mmnmn" "mmnmm" "mmnml" "mmnln" "mmnlm" "mmnll" "mmmnn" "mmmnm" "mmmnl" "mmmmn" "mmmmm" "mmmml" "mmmln" "mmmlm" "mmmll" "mmlnn" "mmlnm" "mmlnl" "mmlmn" "mmlmm" "mmlml" "mmlln" "mmllm" "mmlll" "mlnnn" "mlnnm" "mlnnl" "mlnmn" "mlnmm" "mlnml" "mlnln" "mlnlm" "mlnll" "mlmnn" "mlmnm" "mlmnl" "mlmmn" "mlmmm" "mlmml" "mlmln" "mlmlm" "mlmll" "mllnn" "mllnm" "mllnl" "mllmn" "mllmm" "mllml" "mllln" "mlllm" "mllll" "lnnnn" "lnnnm" "lnnnl" "lnnmn" "lnnmm" "lnnml" "lnnln" "lnnlm" "lnnll" "lnmnn" "lnmnm" "lnmnl" "lnmmn" "lnmmm" "lnmml" "lnmln" "lnmlm" "lnmll" "lnlnn" "lnlnm" "lnlnl" "lnlmn" "lnlmm" "lnlml" "lnlln" "lnllm" "lnlll" "lmnnn" "lmnnm" "lmnnl" "lmnmn" "lmnmm" "lmnml" "lmnln" "lmnlm" "lmnll" "lmmnn" "lmmnm" "lmmnl" "lmmmn" "lmmmm" "lmmml" "lmmln" "lmmlm" "lmmll" "lmlnn" "lmlnm" "lmlnl" "lmlmn" "lmlmm" "lmlml" "lmlln" "lmllm" "lmlll" "llnnn" "llnnm" "llnnl" "llnmn" "llnmm" "llnml" "llnln" "llnlm" "llnll" "llmnn" "llmnm" "llmnl" "llmmn" "llmmm" "llmml" "llmln" "llmlm" "llmll" "lllnn" "lllnm" "lllnl" "lllmn" "lllmm" "lllml" "lllln" "llllm" "lllll")