// Arrange three 1s, three 2s, ..., three 9s in sequence so that for all // i in [1, 9] there are exactly i numbers between successive occurrences // of i. An example of such a sequence is 1, 9, 1, 2, 1, 8, 2, 4, 6, 2, // 7, 9, 4, 5, 8, 6, 3, 4, 7, 5, 3, 9, 6, 8, 3, 5, 7. // (http://people.csail.mit.edu/namin/bits/reasoned-schemer/sequence-program.scm.html) $module Sequence; $use StdIO; $func Main = e; Main, { X X X X X X X X X X X X X X X X X X X X X X X X X X X :: ex, ex : e91 X e92 X e93 X e94, e92 : s s s s s s s s s, e93 : s s s s s s s s s, e91 9 e92 9 e93 9 e94 :: ex, ex : e81 X e82 X e83 X e84, e82 : s s s s s s s s, e83 : s s s s s s s s, e81 8 e82 8 e83 8 e84 :: ex, ex : e71 X e72 X e73 X e74, e72 : s s s s s s s, e73 : s s s s s s s, e71 7 e72 7 e73 7 e74 :: ex, ex : e61 X e62 X e63 X e64, e62 : s s s s s s, e63 : s s s s s s, e61 6 e62 6 e63 6 e64 :: ex, ex : e51 X e52 X e53 X e54, e52 : s s s s s, e53 : s s s s s, e51 5 e52 5 e53 5 e54 :: ex, ex : e41 X e42 X e43 X e44, e42 : s s s s, e43 : s s s s, e41 4 e42 4 e43 4 e44 :: ex, ex : e31 X e32 X e33 X e34, e32 : s s s, e33 : s s s, e31 3 e32 3 e33 3 e34 :: ex, ex : e21 X e22 X e23 X e24, e22 : s s, e23 : s s, e21 2 e22 2 e23 2 e24 :: ex, ex : e11 X e12 X e13 X e14, e12 : s, e13 : s, e11 1 e12 1 e13 1 e14 :: ex, , $fail;; };