13 lines
375 B
Scheme
13 lines
375 B
Scheme
(use gauche.collection)
|
|
|
|
(define *permutations*
|
|
'("ABCD" "CABD" "ACDB" "DACB" "BCDA" "ACBD" "ADCB" "CDAB"
|
|
"DABC" "BCAD" "CADB" "CDBA" "CBAD" "ABDC" "ADBC" "BDCA"
|
|
"DCBA" "BACD" "BADC" "BDAC" "CBDA" "DBCA" "DCAB"))
|
|
|
|
(apply string
|
|
(map (^c (car (find-min c :key length)))
|
|
(map group-collection
|
|
(apply map list (map string->list *permutations*)))))
|
|
|
|
"DBAC"
|